QTableWidget是QT中的表格组件类。一般用来展示多行多列的数据,是QT中使用较多的控件之一。

1、QTableWidgetItem对象

QTableWidget中的每一个单元格都是一个QTableWidgetItem对象,因此先介绍下QTableWidgetItem的常用方法。

1.1、设置文本内容

void QTableWidgetItem::setText(const QString &text)

1.2、设置对齐方式

void QTableWidgetItem::setTextAlignment(int alignment)

1.3、设置单元格背景色

void QTableWidgetItem::setBackground(const QBrush &brush)

1.4、设置单元格显示图标

void QTableWidgetItem::setIcon(const QIcon &icon)

1.5、设置单元格字体

void QTableWidgetItem::setFont(const QFont &font)

1.6、获取单元格文本内容

QString QTableWidgetItem::text() const

2、设置QTableWidget的表头

    //设置列数ui->tableWidget->setColumnCount(3);QTableWidgetItem *item0 = new QTableWidgetItem;QTableWidgetItem *item1 = new QTableWidgetItem;QTableWidgetItem *item2 = new QTableWidgetItem;//设置显示内容item0->setText("姓名");item1->setText("年龄");item2->setText("学号");//设置水平表头ui->tableWidget->setHorizontalHeaderItem(0, item0);ui->tableWidget->setHorizontalHeaderItem(1, item1);ui->tableWidget->setHorizontalHeaderItem(2, item2);

效果

3、初始化数据

    //初始化数据//添加数据时,一定要设置行数,否则数据不会展示出来ui->tableWidget->setRowCount(2);QTableWidgetItem* name0 = new QTableWidgetItem;QTableWidgetItem* name1 = new QTableWidgetItem;QTableWidgetItem* age0 = new QTableWidgetItem;QTableWidgetItem* age1 = new QTableWidgetItem;QTableWidgetItem* code0 = new QTableWidgetItem;QTableWidgetItem* code1 = new QTableWidgetItem;name0->setText("张三");name1->setText("李四");age0->setText("28");age1->setText("26");code0->setText("1000");code1->setText("1001");//为指定的某行或某列设置itemui->tableWidget->setItem(0, 0, name0);ui->tableWidget->setItem(1, 0, name1);ui->tableWidget->setItem(0, 1, age0);ui->tableWidget->setItem(1, 1, age1);ui->tableWidget->setItem(0, 2, code0);ui->tableWidget->setItem(1, 2, code1);

效果

4、插入数据

    //在末尾插入数据int curRow = ui->tableWidget->rowCount();ui->tableWidget->insertRow(curRow);QTableWidgetItem* name2 = new QTableWidgetItem;QTableWidgetItem* age2 = new QTableWidgetItem;QTableWidgetItem* code2 = new QTableWidgetItem;name2->setText("王五");age2->setText("19");code2->setText("1002");ui->tableWidget->setItem(curRow, 0, name2);ui->tableWidget->setItem(curRow, 1, age2);ui->tableWidget->setItem(curRow, 2, code2);

效果

5、遍历数据

    //遍历数据QTableWidgetItem* item;QString str;for(int i = 0; i < ui->tableWidget->rowCount(); i++){for(int j = 0; j < ui->tableWidget->columnCount(); j++){item = ui->tableWidget->item(i, j);str = str + item->text() + " ";}}qDebug()<<"str = "<<str;

效果

6、常用信号

单元格发生切换时,发射两个信号

//currentRow, currentColumn   当前点击的单元格
//previousRow, previousColumn  先前具有焦点的单元格
void QTableWidget::currentCellChanged(int currentRow, int currentColumn, int previousRow, int previousColumn)//current 当前点击的单元格
//previous 先前具有焦点的单元格
void QTableWidget::currentItemChanged(QTableWidgetItem *current, QTableWidgetItem *previous)

7、删除选中行

    int curRow = ui->tableWidget->currentRow();ui->tableWidget->removeRow(curRow);

8、表头的设置

8.1、设置每一行最后一个单元格不留空格

    ui->tableWidget->horizontalHeader()->setStretchLastSection(true);

直接看下效果

8.2、设置自适应大小

ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);

效果

8.3、设置等宽

ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);

效果

9、其他常用设置

9.1、获取行数和列数

int QTableWidget::rowCount() const

int QTableWidget::columnCount() const

9.2、获取当前单元格的行号和列号

int QTableWidget::currentRow() const

int QTableWidget::currentColumn() const

9.3、设置单元格内容是否可编辑

void setEditTriggers(EditTriggers triggers)

9.4、设置选择方式是单元格选择还是行选择

void setSelectionBehavior(QAbstractItemView::SelectionBehavior behavior)

QAbstractItemView::SelectItems      //单元格选择模式

QAbstractItemView::SelectRows      //行选择模式

QAbstractItemView::SelectColumns //列选择模式

Qt手册的使用

上面介绍是QTableWidget较常用的一些方法,使用这些方法进行基本的数据展示和读取完全够用了,如果你要用到其他一些功能,可自行去查阅qt手册。

安装qt后,我们在运行框输入Assistant,然后打开。

我们在这里输入想要查询的控件名,就右侧就会查询到该控件提供的所有方法。

QT之QTableWidget控件相关推荐

  1. [Qt入门]QTableWidget控件创建

    #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent) :QWidg ...

  2. 让QT中的Qtablewidget控件表格中的元素内容显示居中

    //建一个QTableWidget控件 QTableWidget * table = new QTableWidget(tableWdt); //设置该表格的大小,按自己的需要去设定,也可以不设定 t ...

  3. QT常用控件(三)——QTreeWidget(树控件),QTableWidget控件

    QTreeWidget树控件 实例: #include "layout.h" #pragma execution_character_set("utf-8") ...

  4. QT中树控件QTreeView开发实例

    转自:http://mobile.51cto.com/symbian-268700.htm 本文讲解了QT中树控件QTreeView开发实例,对于QTreeView没有过多的讲解,那么不说废话了,看代 ...

  5. QT旋转按钮控件的实现

    目录 一.实现需求:鼠标hover时旋转 二.实现方式:计时器做动画 三.代码实现 QT旋转按钮控件的实现 一.实现需求:鼠标hover时旋转 需求是:实现类似于WINDOWS下,某些软件窗口关闭按钮 ...

  6. Qt Creator 窗体控件自适应窗口大小布局

    常见的软件窗口大小改变(最大化.手动改变时)需要窗口的部件能够自适应布局,而在Qt的应用程序界面设计中,对于像我一样的初学者如何实现窗口自适应调整还是要绕点弯路的.网上百度了很多,多数说的很含糊,还有 ...

  7. QT自定义Widget控件及其使用

    今天来给大家分享一下QT自定义widget控件及其使用,当ui设计器提供的界面不满足实际需求时,可以从QWidget继承自定义的界面组件.有两种方法一种是提升法,另一种是ui设计器自定义界面组件wid ...

  8. Qt 之 ActiveX控件跑官方例程记录

    转载自:Qt 之 ActiveX控件跑官方例程记录 通过自己的实践,补充了一些技术细节 目录(?)[-] 开发环境 基础知识了解 QT的ActiveX控件形式 in-process运行的ActiveX ...

  9. qt 容器组控件 Containers

    qt 容器组控件 Containers 控件名: Group Box:组合框,提供带有标题的组合框框架 Scroll Area:滚动区域 Tool Box:工具箱 Tab Widget:标签小部件 S ...

最新文章

  1. 阿里、京东、去哪儿等大厂技术专家齐聚北京,Flink China Meetup再度归来!
  2. 【转】Impala导出查询结果到文件
  3. html 内部浮动外部不,DIV设置浮动后无法撑开外部DIV的解决办法
  4. 传统IDC转型有了新思路 Zstack除了混合云还有托管云
  5. 程序员面试题精选100题(35)-两链表的第一个公共结点[数据结构]
  6. deepin--解决QQ时间与系统时间不一致
  7. ERROR: ld.so: object 'libgtk3-nocsd.so.0' from LD_PRELOAD cannot be preloaded
  8. 一些css3简单的练习
  9. C++ 使用引用捕获异常
  10. python在人工智能应用锁_饮冰三年-人工智能-Python-35权限管理(万能的权限通用模块)...
  11. 今天加入了OSChina,准备将我的BLOG搬到这里。
  12. 如何将另外一个表里的数据与联动_如何快速高效省事的将一块SSD的数据转移到另外一块SSD上?...
  13. 我的家乡河北涿州岐沟村(岐沟关)
  14. Hibernate 5 详解!
  15. C语言博客作业--一二维数组
  16. 使用python画等边三角形的程序-python叠加等边三角形的代码编写方法
  17. 日期,手机号码正则表达式校验,身份证校验等常用工具
  18. Win7系统网络连接图标显示红叉但可以正常上网怎么办
  19. SAS概念知识点 (复习1)
  20. 源生的html属性js,源生JS怎样实现todolist功能

热门文章

  1. 挚爱家乡五常大米的味道
  2. Hive-beeline启动脚本
  3. 记事本改字体的代码java_求java记事本代码(带字体设置功能)?
  4. impala常见错误
  5. seo是什么工作介绍
  6. python考试搜题神器_智慧职教云课堂2020Python程序设计答案搜题公众号
  7. 如何去掉抖音短视频水印----全网最好用的去抖音视频水印方法
  8. 阿里云ECS服务器配置怎么选?
  9. zencart iis 伪静态设置 测试可用
  10. FFmpeg 快速上手:命令行详解、工具、教程、电子书