1.QTableWidget类简介

QTableWidget是QT对话框设计中常用的显示数据表格的控件
QTableWidget继承于类QTableView,所以在学习QTableWidget之前可以先看一下QTableView,他们两者的区别是:
  • QTableView可以使用自定义的数据模型来显示内容(意味着使用时先要通过setModel来绑定数据源)
  • QTableWidget则只能使用标准的数据模型。

QTableWidget单元格数据是QTableWidgetItem对象来实现的(不需要数据源,单元格内的信息逐个填充即可)。 这主要由于QTableView类中有setModel成员函数,而到了QTableWidget类中,该成员函数变成了私有。
使用QTableWidget就离不开QTableWidgetItem。QTableWidgetItem用来表示表格中的其中一个单元格,整个表格都需要用逐个单元格对象QTableWidgetItem构建起来。

2.QTableWidget的控件属性

2.1 禁止编辑表格

在默认情况下,表格里的字符是可以更改的。
比如双击一个单元格,就可以修改原来的内容,如果想禁止用户的这种操作,让这个表格对用户只读,这样做:
ui.qtablewidget->setEditTriggers(QAbstractItemView::NoEditTriggers);

2.2设置表格为选中整行

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

2.3 设置单个选中还是多个选中

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

2.4 表格表头的显示与隐藏

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

2.5 设置具体单元格中字体的颜色

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

2.6 设置具体单元格中字体格式

ui.qtablewidget->item(1, 0)->setBackgroundColor(QColor(0,60,10));   //背景颜色
ui.qtablewidget->item(1, 0)->setTextColor(QColor(200,111,100));       //字体颜色
ui.qtablewidget->item(1, 0)->setFont(QFont("Helvetica"));                  //字体风格

2.7 设置具体单元格的值

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

2.8 把QTableWidgetItem对象内容装换为QString

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

2.9 具体单元格中添加控件

QComboBox *comBox = new QComboBox();   
comBox->addItem("F");   
comBox->addItem("M");  
ui.qtablewidget->setCellWidget(0,3,comBox);    //在某个单元格内(0.3)添加下拉框控件

2.10 合并单元格

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

2.11 具体单元格中插入图片

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

2.12 设置显示网格

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

2.13 设置滚动条

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

2.14 设置列标签

QStringList HStrList;
HStrList.push_back(QString("name"));
HStrList.push_back(QString("id"));
HStrList.push_back(QString("age"));
HStrList.push_back(QString("sex"));
HStrList.push_back(QString("department"));
//设置行列数(只有列存在的前提下,才可以设置列标签)  int HlableCnt = HStrList.count();
ui.qtablewidget->setRowCount(10);
ui.qtablewidget->setColumnCount(HlableCnt);  //设置列标签
ui.qtablewidget->setHorizontalHeaderLabels(HStrList);  

2.15 将行和列的大小设为与内容相匹配

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

2.16 设置字体

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

2.17 获取某一单元格的内容

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

2.18 清空表格的内容

void QTableWidget::clear () [slot]             //清空所有内容,包括标题头  
void QTableWidget::clearContents () [slot]//清空所有内容,不包括标题头

void QTableWidget::removeColumn ( int column ) [slot]//删除一列,而不是清空表格  
void QTableWidget::removeRow ( int row ) [slot]         //删除一行,不是清空一行

3.实例展示

#include "widget.h"Widget::Widget(QWidget *parent): QWidget(parent),ui(new Ui::WidgetClass)
{ui->setupUi(this);ui->myTableWidget->setRowCount(7);ui->myTableWidget->setColumnCount(2);ui->myTableWidget->setWindowTitle("Chinese Well-Known Universities");//ui->myTableWidget->resize(300,400);QStringList Header;Header<<"University"<<"Location"; //表头ui->myTableWidget->setHorizontalHeaderLabels(Header);ui->myTableWidget->setItem(0,0,new QTableWidgetItem("Tsinghua Univ"));ui->myTableWidget->setItem(1,0,new QTableWidgetItem("Peking Univ"));ui->myTableWidget->setItem(2,0,new QTableWidgetItem("FuDan Univ"));ui->myTableWidget->setItem(0,1,new QTableWidgetItem("BeiJing"));ui->myTableWidget->setItem(1,1,new QTableWidgetItem("BeiJing"));ui->myTableWidget->setItem(2,1,new QTableWidgetItem("ShangHai"));ui->myTableWidget->show();}Widget::~Widget()
{delete ui;
}

实验效果:

Qt修炼手册10_QTableWidget控件使用说明及实践相关推荐

  1. Qt修炼手册4_信号与槽

    1.前言 为了处理个体间的通信事件,Qt提供了信号与槽.信号与槽不仅可以处理GUI上发生的事件,也可以实现个体间的数据通信.值得深入把握. 2.信号与槽 信号与槽是一种用于对象间通信的机制.为了用户在 ...

  2. JQuery Highcharts图表控件使用说明

    JQuery Highcharts图表控件使用说明 Highcharts 官网:http://www.highcharts.com Highcharts 官网示例:http://www.highcha ...

  3. 强大的Winform Chart图表控件使用说明

    强大的Winform Chart图表控件使用说明 引言 使用说明 使用示例 资料 引言 以前经常开发网页端的软件,图表组件一般用echart,功能和样式都非常齐全.但是当用winform开发时,类似的 ...

  4. VS+QT开发Ocx/ActiveX控件 一

    VS+QT开发Ocx/ActiveX控件 一 VS+QT开发Ocx/ActiveX控件-------网页中全屏 二 QT开发ActiveX控件 一:所用IDE版本,需用管理员权限 二:创建Active ...

  5. Qt开发Activex笔记(二):Qt调用Qt开发的Activex控件

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/113789693 长期持续带来更多项目与技术分 ...

  6. QT QSpinBox 整数计数器控件 使用详解

    本文详细的介绍了QSpinBox控件的各种操作,例如:获取数值.设置前后缀.设置最大/小值.进制转换.关联信号槽.优化信号.QSS优化.文件源码.样式表 .效果:可以设置背景.边框.向上按钮.向下按钮 ...

  7. WebPlayer9视频点播系统 - 客户端控件使用说明

    WebPlayer9 - 客户端控件使用说明 1.控件属性 classid="clsid:947BA55B-2113-4349-8784-FFB9D7F881C9" Mode: 控 ...

  8. QT自定义控件之倒计时控件

    文章目录 1 效果预览 2 加载背景图片 3 尺子可拉动头部的实现 4 整个尺子部分的实现 5 表盘的实现 6 主界面代码实现 1 效果预览 我们首先来看下实现的效果: 右边的表带拉动会使左边的表盘跟 ...

  9. 【Qt开发】常用控件--QLineEdit

    QLineEdit是单行文本编辑控件.比如用户名,密码等输入框可以使用该控件. 所属头文件<QLineEdit> 常用方法 1.void setText(const QString &am ...

最新文章

  1. IOS 后台挂起程序 当程序到后台后,继续完成定位任务
  2. 服务器 上传文件 杀毒,一种实现文件上传网站后自动进行杀毒的方法及系统
  3. python编程函数_python编程中函数和参数你必须知道的
  4. add函数 pytorch_pytorch常用函数
  5. java和python的比较-java和python的比较
  6. 实验一 查看CPU和内存 用机器指令和汇编指令编程
  7. Java报告比较日期,java 比较两个日期大小(1)
  8. 双剑合璧:邮件客户端与邮件系统
  9. samtools常用命令详解
  10. Spring 框架教程
  11. (11)FPGA面试题同步复位与异步复位
  12. 【OpenCV】绘图与注释——绘制色差图
  13. 【笔记】架构整洁之道
  14. Windows文件夹或文件名过长无法删除
  15. 对京东商品评论进行词频统计并制作词云
  16. Git 如何撤回已经push到远端上的代码
  17. 基于java springboot租房平台设计,公寓租赁系统
  18. 国际结算名词解释汇总
  19. android 装饰着模式,Android与设计模式——装饰者(Decorator)模式
  20. 欧盟加密资产市场监管法案(Markets in Crypto Assets Regulation Bill,MiCAR法案)内容概览

热门文章

  1. Windows环境下maven 安装与环境变量配置
  2. 如何检测过期的统计信息(转)
  3. jQuery 2.0.3 源码分析 事件体系结构
  4. 职场中一路走来却拂不去一丝失落——一个女IT的告白
  5. HRSP热备份路由协议(思科私有协议)
  6. FW : 一只小青蛙的一生(图片连载)
  7. 《机器学习实战》chapter02 K-近邻算法(KNN)
  8. NYOJ 630 Problem of IP
  9. 分布式系统消息中间件——RabbitMQ的使用基础篇
  10. 显示二维数组并计算和