福州网站建站公司,单片机做网站,业务多平台怎么样,pc网站建设方案有哪些【 声明#xff1a;版权所有#xff0c;欢迎转载#xff0c;请勿用于商业用途。 联系信箱#xff1a;feixiaoxing 163.com】 所有的控件当中#xff0c;除了label、edit、radio、combobox和button之外#xff0c;另外一个用的比较多的控件就是grid#xff0c;也可称之为…【 声明版权所有欢迎转载请勿用于商业用途。 联系信箱feixiaoxing 163.com】 所有的控件当中除了label、edit、radio、combobox和button之外另外一个用的比较多的控件就是grid也可称之为表格。表格在很多场景下都可以发挥着重要的作用比如说统计、项目管理、财务等等。今天我们借着编写会员充值软件的机会看看一个windows界面下的表格应该如何来添加数据。 1、创建一个基础工程 首先还是用widget创建一个基础工程对应的ui文件在designer中会进行修改和优化。 2、利用designer修改输入界面 目前来说输入界面主要有两部分。左边的输入以及右边的表格。左侧输入的话主要就是四组label和edit同时加上一个button按钮。右侧表格的话则是一个QTableWidget。当然为了好看在左侧我们还添加了一个Input的groupbox整体就会显得稍微均衡一点 对应的ui文件如下所示
?xml version1.0 encodingUTF-8?
ui version4.0classQtWidgetsApplicationClass/classwidget classQMainWindow nameQtWidgetsApplicationClassproperty namegeometryrectx0/xy0/ywidth756/widthheight338/height/rect/propertyproperty namewindowTitlestringQtWidgetsApplication/string/propertywidget classQWidget namecentralWidgetwidget classQLabel namelabel_1property namegeometryrectx50/xy60/ywidth54/widthheight12/height/rect/propertyproperty nametextstringFirstName:/string/property/widgetwidget classQLineEdit namelineEdit_1property namegeometryrectx130/xy54/ywidth113/widthheight20/height/rect/property/widgetwidget classQLabel namelabel_2property namegeometryrectx50/xy106/ywidth54/widthheight12/height/rect/propertyproperty nametextstringLastName/string/property/widgetwidget classQLineEdit namelineEdit_2property namegeometryrectx130/xy100/ywidth113/widthheight20/height/rect/property/widgetwidget classQLabel namelabel_3property namegeometryrectx50/xy150/ywidth54/widthheight12/height/rect/propertyproperty nametextstringAge/string/property/widgetwidget classQLineEdit namelineEdit_3property namegeometryrectx130/xy150/ywidth113/widthheight20/height/rect/property/widgetwidget classQLabel namelabel_4property namegeometryrectx50/xy200/ywidth54/widthheight12/height/rect/propertyproperty nametextstringSum/string/property/widgetwidget classQLineEdit namelineEdit_4property namegeometryrectx130/xy200/ywidth113/widthheight20/height/rect/property/widgetwidget classQPushButton namepushButtonproperty namegeometryrectx90/xy260/ywidth93/widthheight28/height/rect/propertyproperty nametextstringAdd/string/property/widgetwidget classQTableWidget nametableWidgetproperty namegeometryrectx300/xy30/ywidth411/widthheight271/height/rect/property/widgetwidget classQGroupBox namegroupBoxproperty namegeometryrectx20/xy20/ywidth261/widthheight281/height/rect/propertyproperty nametitlestringInput/string/property/widgetzordergroupBox/zorderzorderlabel_1/zorderzorderlineEdit_1/zorderzorderlabel_2/zorderzorderlineEdit_2/zorderzorderlabel_3/zorderzorderlineEdit_3/zorderzorderlabel_4/zorderzorderlineEdit_4/zorderzorderpushButton/zorderzordertableWidget/zorder/widget/widgetlayoutdefault spacing6 margin11/resourcesinclude locationQtWidgetsApplication.qrc//resourcesconnections/
/ui3、代码编写 在代码编写这部分按钮如何添加、绑定之前已经描述过这里不再赘述。目前头文件主要是这样安排的
#pragma once#include QtWidgets/QMainWindow
#include ui_QtWidgetsApplication.hclass QtWidgetsApplication : public QMainWindow
{Q_OBJECTpublic:QtWidgetsApplication(QWidget *parent nullptr);~QtWidgetsApplication();private:Ui::QtWidgetsApplicationClass ui;int total;private slots:void button_clicked();
};我们着重讨论一下关于tableWidget的部分也就是在表格当中如何添加和显示数据。
#include QtWidgetsApplication.hQtWidgetsApplication::QtWidgetsApplication(QWidget *parent): QMainWindow(parent)
{ui.setupUi(this);total 1;connect(ui.pushButton, QPushButton::clicked, this, QtWidgetsApplication::button_clicked);// set column count ui.tableWidget-setColumnCount(4);ui.tableWidget-setRowCount(10);// set width and heightui.tableWidget-setColumnWidth(0, 100);ui.tableWidget-setColumnWidth(1, 100);ui.tableWidget-setColumnWidth(2, 50);ui.tableWidget-setRowHeight(0, 30);// set column nameQStringList headerLabels;headerLabels First Name Last Name Age Sum;ui.tableWidget-setHorizontalHeaderLabels(headerLabels);//add first dataQTableWidgetItem *firstNameItem new QTableWidgetItem(John);QTableWidgetItem *lastNameItem new QTableWidgetItem(Doe);QTableWidgetItem *ageItem new QTableWidgetItem(25);QTableWidgetItem *sumItem new QTableWidgetItem(QString::number(100));ui.tableWidget-setItem(0, 0, firstNameItem);ui.tableWidget-setItem(0, 1, lastNameItem);ui.tableWidget-setItem(0, 2, ageItem);ui.tableWidget-setItem(0, 3, sumItem);// set no editableui.tableWidget-setEditTriggers(QAbstractItemView::NoEditTriggers);
}QtWidgetsApplication::~QtWidgetsApplication()
{}void QtWidgetsApplication::button_clicked()
{QTableWidgetItem *firstNameItem new QTableWidgetItem(ui.lineEdit_1-text());QTableWidgetItem *lastNameItem new QTableWidgetItem(ui.lineEdit_2-text());QTableWidgetItem *ageItem new QTableWidgetItem(ui.lineEdit_3-text());QTableWidgetItem *sumItem new QTableWidgetItem(ui.lineEdit_4-text());ui.tableWidget-setItem(total, 0, firstNameItem);ui.tableWidget-setItem(total, 1, lastNameItem);ui.tableWidget-setItem(total, 2, ageItem);ui.tableWidget-setItem(total, 3, sumItem);total 1;
}整个显示当中tableWidget变量可以直接从ui中获取。首先设置一下column和row的数量。接着设定column的宽度以及row的高度。这些都做完之后就可以通过QStringList将column名字压入到tableWidget当中。接着就可以添加第一行数据了添加的方法也是先配置QTableWidgetItem再将QTableWidgetItem压入到tableWidget当中去。最后为了让tableWidget数据变成只读状态我们还要通过setEditTriggers函数设置一下。 4、编译和测试 因为文章中主要实现了tableWidget是如何显示和添加数据的所以主要的check和验证也是集中在这个方面。关于button部分的函数回调和添加这部分只需要在四个Edit框里面添加数据单击按钮后就会在右侧的tableWidget中看到添加的效果了。