Qt常用基础控件总结—表格控件(QTableWidget类)

表格控件QTableWidget

表格控件最上面一排是只读的水平表头,最左边一列是只读的垂直表头。表头又可以细分为多个分段(section),水平表头的分段就是表格各个列的列首,垂直表头 分段就是表格各个行的行首。表格控件的实体区域是按行、列排布的单元格,单元格内容一般用 QTableWidgetItem 条目填充,单元格如果不填充任何东西,那么默认是 NULL。

表格控件的有很多名字相似的两套函数或信号,比如设置当前高亮单元格函数 setCurrentCell(int row, int column) 和设置当前高亮条目 setCurrentItem(QTableWidgetItem * item),这两个函数名字很类似,二者最主要的区别就是:名字带 Cell 的函数是基于单元格的,对 NULL 空单元格也可以使用;而名字带 Item 的函数,必须是填充了实体条目的单元格,针对实际存在的单元格条目操作

表格控件因为设置单元格必须同时知道行号、列号,所以没有 Add和 Insert之类的添加函数,表格只有如下设置条目函数

制作表格控件步骤
1)设置表格行数,列数(如果没有设置,表格数据不会显示)

2)根据设计需要设置水平表头、垂直表头标签

3)设置表格数据(基于QTableWidgetItem类设置表格数据)

4)与表格交互

5)根据需要设置表格样式,这一步骤在以上过程中穿插进行

常用函数如下:

初始化表格控件

初始化表格控件,设置表格行数/列数/表头等参数

QTableWidget(QWidget * parent = 0);
QTableWidget(int rows, int columns, QWidget * parent = 0);//构造函数,构造表格控件,指定表格行和列

void setRowCount(int rows) //设置行数

void setColumnCount(int columns) //设置列数

int rowCount() const //获取行数

int columnCount() const //获取列数

void QTableView::setColumnWidth(int column, int width);//设置指定列的宽度

void QTableView::setRowHeight(int row, int height);//设置指定行的行高

void QTableWidget::setHorizontalHeaderLabels(const QStringList &labels);//设置水平表头

设置水平表头举例如下:

QStringList headerList;
headerList << QString::fromLocal8Bit("学号")
           << QString::fromLocal8Bit("姓名")
           << QString::fromLocal8Bit("语文")
           << QString::fromLocal8Bit("数学")
           << QString::fromLocal8Bit("英语") ;

ui->tableWidget->setColumnCount(headerList.size());
ui->tableWidget->setHorizontalHeaderLabels(headerList);

void QHeaderView::setSectionResizeMode(ResizeMode mode);//设置表头尺寸模式
void QHeaderView::setSectionResizeMode(int logicalIndex, ResizeMode mode);//指定索引表头的尺寸模式
ResizeMode模式有以下几种:

  • Interactive:交互模式,通过鼠标拖拽表格中间的分割线调整表格宽度,默认设置
  • Stretch:使每一列都相等,并占满表格宽度
  • Fixed:这个模式一般与其他属性一起设置,比如手动设置列的宽度,设置最后一列自动拉伸
  • ResizeToContents:列的宽度会根据列标题文字的宽度自动设置
  • Custom = Fixed
    以上列宽模式也可以混合使用,如已经设置了Stretch模式,但是觉得某一列宽度不合适,可以按照如下方式进行设置:
ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);
ui->tableWidget->horizontalHeader()->setSectionResizeMode(

相关推荐

  1. Qt基础总结表格(QTableWidget)

    2024-07-11 21:28:03       23 阅读
  2. Qt基础总结—菜单(QMenu)

    2024-07-11 21:28:03       24 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 21:28:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 21:28:03       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 21:28:03       58 阅读
  4. Python语言-面向对象

    2024-07-11 21:28:03       69 阅读

热门阅读

  1. pudb: Python的图形化调试器

    2024-07-11 21:28:03       24 阅读
  2. 派森学长带你学python—字符串

    2024-07-11 21:28:03       21 阅读
  3. DP学习——设计模式怎么来的?

    2024-07-11 21:28:03       18 阅读
  4. 7.10飞书一面

    2024-07-11 21:28:03       17 阅读
  5. wpf 不同 DataContext 之间的通讯

    2024-07-11 21:28:03       21 阅读
  6. 状态同步和帧同步原理细节

    2024-07-11 21:28:03       22 阅读
  7. easy-poi实现动态列(标题)、多sheet导出excel

    2024-07-11 21:28:03       23 阅读
  8. null empty

    2024-07-11 21:28:03       17 阅读
  9. C++反射的实现方式

    2024-07-11 21:28:03       21 阅读
  10. Visual Studio Code:深度解析与开发者的新宠

    2024-07-11 21:28:03       24 阅读
  11. 减法原则的定义

    2024-07-11 21:28:03       18 阅读
  12. 实现基于Zookeeper的分布式协调服务

    2024-07-11 21:28:03       22 阅读
  13. ios的info.plist 配置

    2024-07-11 21:28:03       24 阅读
  14. iOS 开发中不常见的专业术语

    2024-07-11 21:28:03       17 阅读