【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();

QTableWidget控件总结的更多相关文章

  1. QTableWidget控件总结<一>

    [1]QTableWidget简介 QTableWidget是QT对话框设计中常用的显示数据表格的控件. 学习QTableWidget就要首先看看QTableView控件(控件也是有"家世& ...

  2. QTableWidget控件总结<二>

    QTableWidget是QT程序中常用的显示数据表格的空间,很类似于VC.C#中的DataGrid.说到QTableWidget,就必须讲一下它跟QTabelView的区别了.QTableWidge ...

  3. [ PyQt入门教程 ] PyQt5中数据表格控件QTableWidget使用方法

    如果你想让你开发的PyQt5工具展示的数据显得整齐.美观.好看,显得符合你的气质,可以考虑使用QTableWidget控件.之前一直使用的是textBrowser文本框控件,数据展示还是不太美观.其中 ...

  4. qt5--表格控件QTableWidget

    需要    #include <QTableWidget>      #include <QTableWidgetItem> #include "win.h" ...

  5. Qt在表格中加入控件

    任务:使用QTableWidget动态生成表格,在每行的某两列中加入QComboBox下拉框控件和QPushButton按钮控件 有添加,删除,编辑功能,每行的按钮可以浏览文件夹并选择文件 1.新建一 ...

  6. Qt分页导航控件

    最近在使用QTableWidget时,因为结果数量比较多而且又有单元格控件,为了改善效率要做分页处理.在网上找了一番,最后在http://www.cppblog.com/biao/archive/20 ...

  7. Qt常用控件

    Qt常用控件 QWidget与QFrame QWidget所有图形控件的基类 QFrame与QWidget的区别 QFrame是基本控件的基类, QWidget是QFrame的基类. 因此QFrame ...

  8. QT控件学习

    一.QPushButton 1.设置背景色: ui->pushButton->setStyleSheet("background-color: rgb(170, 0, 255)& ...

  9. 批量操作QT UI中的控件

    背景:在一个项目中,可能一个UI中存在大量相同的tablewidget,combobox,label等控件,每种可能有100个,此时想对它们进行同样的操作 方案:(以tablewidget为例,UI中 ...

随机推荐

  1. js模版引擎handlebars.js实用教程——另一种Helper用法

    返回目录 <!DOCTYPE html> <html> <head> <META http-equiv=Content-Type content=" ...

  2. Atitit 马尔可夫过程(Markov process) hmm隐马尔科夫。 马尔可夫链,的原理attilax总结

    Atitit 马尔可夫过程(Markov process) hmm隐马尔科夫. 马尔可夫链,的原理attilax总结 1. 马尔可夫过程1 1.1. 马尔科夫的应用 生成一篇"看起来像文章的 ...

  3. Atitit 图像处理之仿油画效果 Oilpaint油画滤镜 水彩画 漫画滤镜 v2

    Atitit 图像处理之仿油画效果 Oilpaint油画滤镜 水彩画 漫画滤镜 v2 1.1. 具体源码参考1 2. ,油画 水彩画具有几个比较明显的特点如下:1 2.1. 明暗层次(灰度)较少  也 ...

  4. js 四舍五入函数 toFixed(),小数位数精度

    js的加减乘除有时得到的结果的小数的位数非常大,这种结果非常难以读取,例如某两个数相乘得到的结果是:1.3921000000000001 这种结果小数的位数有点多,一般需要的结果是四舍无入的 1.39 ...

  5. asp.net Web.config 在不同版本的IIS配置的IHttpHandler的访问路径,以及经典模式和集成模式不同的配置

    如果IIS7.0使用.net4.0以上版本的框架,<system.web>中的httpHandlers节点就没有用了,而应该使用微软专为.net4.0以上版本设计的新节点<syste ...

  6. SQLServer查看死锁

    SQLServer查看死锁 if exists ( select * from sys.procedures where name like '%USP_ShowLocks%' ) drop proc ...

  7. win2003 64位系统IIS6.0 32位与64位间切换

    ASP.NET 1.1,32 位版本 要运行 32 位版本的 ASP.NET 1.1,按照以下步骤操作: 1.单击“开始”,单击“运行”,键入 cmd,然后单击“确定”. 2.键入以下命令启用 32 ...

  8. 使用Source Safe for SQL Server解决数据库版本管理问题

    简介     在软件开发过程中,版本控制是一个广为人知的概念.因为一个项目可能会需要不同角色人员的参与,通过使用版本控制软件,可以使得项目中不同角色的人并行参与到项目当中.源代码控制使得代码可以存在多 ...

  9. 【Hibernate】一级、二级缓冲

    Hibernate缓冲按级别共分为两种,一级缓冲(Session)和二级缓冲(SessionFactory),有的也说是三种,还有一种是查询缓冲,当然,查询缓冲是依托于二级缓冲. ok,什么是缓冲? ...

  10. WPF自定义控件与样式(13)-自定义窗体Window & 自适应内容大小消息框MessageBox

    一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接. 本文主要内容: 自定义 ...