Qt QTableWidget表格控件的用法(非常详细)

您所在的位置:网站首页 表格怎么设置减数显示 Qt QTableWidget表格控件的用法(非常详细)

Qt QTableWidget表格控件的用法(非常详细)

2024-06-20 05:08| 来源: 网络整理| 查看: 265

Qt QTableWidget表格控件的用法(非常详细)

QTableWidget 是 Qt 提供的一种表格控件(如图 1 所示),类似于我们经常使用的 Excel 表格,可以将数据以表格的方式展示给用户。

整个 QTableWidget 表格可以分为 3 个区域:

区域 ① 和 ② 都是表头,区域 ① 设置每一行的表头,区域 ② 设置每一列的表头。我们可以自定义两个区域内的表头,比如第一列是各个教程的名称,所以第一列的表头可以修改为“教程名称”;

区域 ③ 为数据区,表格中所有的数据都位于此区域,该区域内可以存放单元格,也可以存放按钮、文本框等控件。

默认情况下,表格会显示表头,表头的内容为行号或列号。根据实际需要,我们可以将表头隐藏起来。

QTableWidget 继承自 QTableView 类,QTableView 类也可以用来显示表格控件。QTableWidget 可以看做是 QTableView 的“简易版”或者“升级版”,它们的区别在于:

QTableWidget 使用起来更简单,而 QTableView 的用法相对比较复杂。

QTableView 可以存储大量的数据(例如几十万甚至几百万),用户浏览表格中的数据时不会出现卡顿等现象;尽管 QTableWidget 也能用来存储大量的数据,但用户使用时可能出现卡顿等现象,且显示的数据越多,类似的现象越明显。

总之,QTableWidget 只适合显示少量的数据(几百或几千个),如果想要显示更多的数据,应该用 QTableView。此外,QTableView 还有一些更高级的用法,我们会在讲解 QTableView 时做重点介绍。

QTableWidget 框架在实际开发中经常使用,如果您是一名初学者,我建议先学习 QTableWidget 控件,它可以降低您学习 QT 表格控件的成本,可以更快地掌握表格的用法。

QTableWidget表格的创建

使用 QTableWidget 控件,必须先引入头文件。

QTableWidget 类提供了 2 个构造函数,分别是:

QTableWidget(QWidget *parent = Q_NULLPTR) QTableWidget(int rows, int columns, QWidget *parent = Q_NULLPTR)

第一个构造函数可以在指定的 parent 父窗口中创建一个空的表格,表格中不显示任何单元格(如图 2a) 所示)。第二个构造函数可以在指定的 parent 父窗口中创建一个表格,表格中整齐地排列着 rows 行 columus 列的单元格,每个单元格都是空的(如图 2b) 所示)。

在这里插入图片描述

图 2 创建 QTableWidget 表格

实用 QTableWidget 表格之前,必须指定表格的行和列。我们可以直接调用第 2 个构造函数,这样既创建了表格又指定了行和列。当然,也可以调用第 1 个构造函数先创建表格,然后借助 QTableWidget 类提供的成员方法指定行和列,两种方式都可以。

与数组下标类似,QTableWidget 表格单元格的行标和列标都是从 0 开始。例如在图 2b) 中,选中的单元格的坐标是 (0, 0)。

QTableWidgetItem单元格

QTableWidget 表格中,每个单元格都是 QTableWidgetItem 类的实例对象。

定义 QTableWidgetItem 类的实例对象之前,程序中要引入头文件。QTableWidgetItem 类提供了 4 个构造函数:

QTableWidgetItem(int type = Type) QTableWidgetItem(const QString &text, int type = Type) QTableWidgetItem(const QIcon &icon, const QString &text, int type = Type) QTableWidgetItem(const QTableWidgetItem &other) //复制(拷贝)构造函数

text 参数用于指定单元格要显示的文本(字符串),icon 参数用于指定单元格要显示的图标,type 参数配有默认值,很少用到。

QTableWidgetItem 单元格通常用来存放 text 文本和 icon 图标,借助该类提供的 setBackground()、setTextAlignment() 等成员方法,我们可以轻松设置每个单元格的字体、颜色、背景等。

QTableWidgetItem 类还对setText(item->text()); } int main(int argc, char *argv[]) { QApplication a(argc, argv); //创建一个窗口,作为输入框和列表框的父窗口 QWidget widget; //设置窗口的标题 widget.setWindowTitle("QTableWidget控件"); //自定义窗口的大小 widget.resize(900,500); //在 widget 窗口中添加一个 4 行 3 列的表格 QTableWidget TableWidget(4,3,&widget); //自定义表格的尺寸和字体大小 TableWidget.resize(900,350); TableWidget.setFont(QFont("宋体",20)); //设置表格中每一行的表头 TableWidget.setHorizontalHeaderLabels(QStringList()



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3