什么是QTableWidget
QTableWidget是以行和列的形式展示数据的二维表格,每个单元格由一个QTableWidgetItem对象表示,它提供插入、删除行或列、以及访问和修改单元格内容等操作方法,还可以自定义行和列的表头,功能非常强大。
界面设置QTableWidget
打开页面编辑器,左侧找到Table Widget控件并拖拽进来,可按需调整控件大小
双击Table Widget,弹出编辑表格窗口部件的弹窗,在这里我们可以编辑表格的内容,首先是列,我们可以自定义添加表格的每一列
再添加行,输入自定义的内容即可
切换到项目,可为每一个单元格输入数据
完成上面的内容输入后,通过 工具 -- 界面编辑器 -- 预览 看效果,一个简单的表格就设置完成了
属性
QTableWidget的属性
在右侧控件对象中,选中QTableWidget,属性下拉到最下方,可以看到QTableWidget的属性只有两个,rowCount和columnCount,分别代表行数和列数
修改其值后,我们可以看到表格的行和列也随之发生变化
单元格属性
首先来看列和行的属性,这两个支持的属性是一致的,可设置字体相关属性、内容排列方式、背景色等基本属性
项目的属性除了上面与列和行一致的部分以外,还支持一些可选择、可编辑等的操作,更多属性用法在QT助手中查询。
代码实现QTableWidget
我们来看下用代码如何实现这个页面
1、创建一个QWidget的主窗体,在.cpp的文件中添加如下代码
QHBoxLayout *horizontalLayout = new QHBoxLayout;
//左侧菜单区
QWidget *widget = new QWidget;
QHBoxLayout *horizontalLayout_2 = new QHBoxLayout;
QLabel *label = new QLabel(widget);
label->setText("菜单区");
label->setStyleSheet("QLabel { color: white;font-size: 20pt;}");
horizontalLayout_2->addWidget(label);
widget->setLayout(horizontalLayout_2);
widget->setStyleSheet(QString::fromUtf8("background-color: rgb(21, 30, 81);"));
//右侧Table
QTableWidget *tableWidget = new QTableWidget;
// 设置行和列
tableWidget->setRowCount(3);
tableWidget->setColumnCount(5);
// 设置表头
QStringList headerLabels;
headerLabels << "第一列" << "第二列" << "第三列" << "第四列" << "第五列";
tableWidget->setHorizontalHeaderLabels(headerLabels);
QStringList verticalLabels;
verticalLabels << "第一行" << "第二行" << "第三行";
tableWidget->setVerticalHeaderLabels(verticalLabels);
// 添加数据
for (int row = 0; row < 3; ++row) {
for (int col = 0; col < 5; ++col) {
QTableWidgetItem *newItem = new QTableWidgetItem(QString("行%0, 列%1").arg(row+1).arg(col+1));
tableWidget->setItem(row, col, newItem);
}
}
horizontalLayout->addWidget(widget);
horizontalLayout->addWidget(tableWidget);
horizontalLayout->setStretch(1, 5);
this->setLayout(horizontalLayout);
// 窗口的大小及位置,左上角坐标(300, 300),宽度1600,高度1000
this->setGeometry(QRect(300, 300, 1600, 1000));
2、表格创建好了,执行一下