QT之QTableWidget控件
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控件相关推荐
- [Qt入门]QTableWidget控件创建
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent) :QWidg ...
- 让QT中的Qtablewidget控件表格中的元素内容显示居中
//建一个QTableWidget控件 QTableWidget * table = new QTableWidget(tableWdt); //设置该表格的大小,按自己的需要去设定,也可以不设定 t ...
- QT常用控件(三)——QTreeWidget(树控件),QTableWidget控件
QTreeWidget树控件 实例: #include "layout.h" #pragma execution_character_set("utf-8") ...
- QT中树控件QTreeView开发实例
转自:http://mobile.51cto.com/symbian-268700.htm 本文讲解了QT中树控件QTreeView开发实例,对于QTreeView没有过多的讲解,那么不说废话了,看代 ...
- QT旋转按钮控件的实现
目录 一.实现需求:鼠标hover时旋转 二.实现方式:计时器做动画 三.代码实现 QT旋转按钮控件的实现 一.实现需求:鼠标hover时旋转 需求是:实现类似于WINDOWS下,某些软件窗口关闭按钮 ...
- Qt Creator 窗体控件自适应窗口大小布局
常见的软件窗口大小改变(最大化.手动改变时)需要窗口的部件能够自适应布局,而在Qt的应用程序界面设计中,对于像我一样的初学者如何实现窗口自适应调整还是要绕点弯路的.网上百度了很多,多数说的很含糊,还有 ...
- QT自定义Widget控件及其使用
今天来给大家分享一下QT自定义widget控件及其使用,当ui设计器提供的界面不满足实际需求时,可以从QWidget继承自定义的界面组件.有两种方法一种是提升法,另一种是ui设计器自定义界面组件wid ...
- Qt 之 ActiveX控件跑官方例程记录
转载自:Qt 之 ActiveX控件跑官方例程记录 通过自己的实践,补充了一些技术细节 目录(?)[-] 开发环境 基础知识了解 QT的ActiveX控件形式 in-process运行的ActiveX ...
- qt 容器组控件 Containers
qt 容器组控件 Containers 控件名: Group Box:组合框,提供带有标题的组合框框架 Scroll Area:滚动区域 Tool Box:工具箱 Tab Widget:标签小部件 S ...
最新文章
- 阿里、京东、去哪儿等大厂技术专家齐聚北京,Flink China Meetup再度归来!
- 【转】Impala导出查询结果到文件
- html 内部浮动外部不,DIV设置浮动后无法撑开外部DIV的解决办法
- 传统IDC转型有了新思路 Zstack除了混合云还有托管云
- 程序员面试题精选100题(35)-两链表的第一个公共结点[数据结构]
- deepin--解决QQ时间与系统时间不一致
- ERROR: ld.so: object 'libgtk3-nocsd.so.0' from LD_PRELOAD cannot be preloaded
- 一些css3简单的练习
- C++ 使用引用捕获异常
- python在人工智能应用锁_饮冰三年-人工智能-Python-35权限管理(万能的权限通用模块)...
- 今天加入了OSChina,准备将我的BLOG搬到这里。
- 如何将另外一个表里的数据与联动_如何快速高效省事的将一块SSD的数据转移到另外一块SSD上?...
- 我的家乡河北涿州岐沟村(岐沟关)
- Hibernate 5 详解!
- C语言博客作业--一二维数组
- 使用python画等边三角形的程序-python叠加等边三角形的代码编写方法
- 日期,手机号码正则表达式校验,身份证校验等常用工具
- Win7系统网络连接图标显示红叉但可以正常上网怎么办
- SAS概念知识点 (复习1)
- 源生的html属性js,源生JS怎样实现todolist功能