博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
QTableWidget控件总结
阅读量:6924 次
发布时间:2019-06-27

本文共 2862 字,大约阅读时间需要 9 分钟。

【1】QTableWidget简介

QTableWidget是QT对话框设计中常用的显示数据表格的控件。

学习QTableWidget就要首先看看QTableView控件(控件也是有”家世“的!就像研究人一样一样的),因为QTableWidget继承于类QTableView。

两者主要区别是QTableView可以使用自定义的数据模型来显示内容(也就意味着使用时先要通过setModel来绑定数据源),而QTableWidget则只能使用标准的数据模型。

QTableWidget单元格数据是QTableWidgetItem对象来实现的(即就是不需要数据源,单元格内的信息需要逐个填充即可)。

这主要由于QTableView类中有setModel成员函数,而到了QTableWidget类中,该成员函数变成了私有。

使用QTableWidget就离不开QTableWidgetItem。QTableWidgetItem用来表示表格中的其中一个单元格,整个表格都需要用逐个单元格对象QTableWidgetItem构建起来。

【2】QTableWidget控件属性

(1)禁止编辑表格

在默认情况下,表格里的字符是可以更改的。

比如双击一个单元格,就可以修改原来的内容,如果想禁止用户的这种操作,让这个表格对用户只读,可以这样:

1 ui.qtablewidget->setEditTriggers(QAbstractItemView::NoEditTriggers);

(2)设置表格为选择整行

1 /*设置表格为整行选中*/2 ui.qtablewidget->setSelectionBehavior(QAbstractItemView::SelectRows);

(3)设置单个选中和多个选中

单个选中意味着每次只可以选中一个单元格,多个就是相当于可以选择”一片“那种模式。

1 /*设置允许多个选中*/ 2     ui.qtablewidget->setSelectionMode(QAbstractItemView::ExtendedSelection);

(4)表格表头的显示与隐藏

对于水平或垂直方向的表头,如果不想显示可以用以下方式进行(隐藏/显示)设置:

1 ui.qtablewidget->verticalHeader()->setVisible(true);  2 ui.qtablewidget->horizontalHeader()->setVisible(false);

(5)设置具体单元格中字体的对齐方式

1 ui.qtablewidget->item(0, 0)->setTextAlignment(Qt::AlignHCenter);

(6)设置具体单元格中字体格式

1 ui.qtablewidget->item(1, 0)->setBackgroundColor(QColor(0,60,10));   2 ui.qtablewidget->item(1, 0)->setTextColor(QColor(200,111,100)); 3 ui.qtablewidget->item(1, 0)->setFont(QFont("Helvetica"));

(7)设置具体单元格的值

1 ui.qtablewidget->setItem(1, 0, new QTableWidgetItem(str));

(8)把QTableWidgetItem对象内容转换为QString

1 QString str =ui.qtablewidget->item(0, 0)->data(Qt::DisplayRole).toString();

(9)具体单元格中添加控件

1 QComboBox *comBox = new QComboBox(); 2 comBox->addItem("F"); 3 comBox->addItem("M"); 4 ui.qtablewidget->setCellWidget(0,3,comBox);

(11)合并单元格

1 //合并单元格的效果2 ui.qtablewidget->setSpan(2, 2, 3, 2);3 //第一个参数:要改变的单元格行数4 //第二个参数:要改变的单元格列数5 //第三个参数:需要合并的行数6 //第四个参数:需要合并的列数

(12)具体单元格中插入图片

ui.qtablewidget->setItem(3, 2, new QTableWidgetItem(QIcon("images/music.png"), "Music"));

(13)设置显示网格

ui.qtablewidget->setShowGrid(true);//显示表格线

(14)设置滚动条

ui.qtablewidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);//去掉水平滚动条

(15)设置列标签

1     //初始化界面 2     QStringList  HStrList; 3     HStrList.push_back(QString("name")); 4     HStrList.push_back(QString("id")); 5     HStrList.push_back(QString("age")); 6     HStrList.push_back(QString("sex")); 7     HStrList.push_back(QString("department")); 8      9 10     //设置行列数(只有列存在的前提下,才可以设置列标签)11     int HlableCnt = HStrList.count();12     ui.qtablewidget->setRowCount(10);13     ui.qtablewidget->setColumnCount(HlableCnt);14 15     //设置列标签16     ui.qtablewidget->setHorizontalHeaderLabels(HStrList);

(16)设置行和列的大小设为与内容相匹配

1 ui.qtablewidget->resizeColumnsToContents();  2 ui.qtablewidget->resizeRowsToContents();

(17)设置字体

ui.qtablewidget->setFont(font);   //设置字体

(18)获取某一单元格的内容

1 QString strText = ui.qtablewidget->item(0, 0)->text();

 

Good Good Study, Day Day Up.

顺序  选择  循环  坚持 

转载地址:http://vhkjl.baihongyu.com/

你可能感兴趣的文章
Android平台设计规范
查看>>
oracle错误分析
查看>>
淘宝的OceanBase
查看>>
hbase安装
查看>>
解决Re-download dependencies and sync project
查看>>
Android隐藏输入法软键盘的注意事项
查看>>
Spring框架设计理念与设计模式
查看>>
Windows下MySQL数据库备份脚本(二)
查看>>
算法导论-归并排序
查看>>
用Javascript判断图片是否存在,不存在则显示默认图片的代码
查看>>
Android签名问题,jarsigner的问题
查看>>
Curator Service discovery
查看>>
获取网络数据后缓存到本地,下次从本地获取
查看>>
C#获取本机IP和MAC
查看>>
量子力学崩塌你的“科学”世界观
查看>>
远程桌面之终端服务器超出了最大允许连接数
查看>>
rsync+inotify实现数据的实时同步与备份
查看>>
解决RHEV上传安装源( engine-iso-uploader)异常出错问题解决方案
查看>>
Flex容器综合应用以及皮肤的添加效果
查看>>
一次mysql占用cpu高的处理过程
查看>>