Qt修炼手册10_QTableWidget控件使用说明及实践
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控件使用说明及实践相关推荐
- Qt修炼手册4_信号与槽
1.前言 为了处理个体间的通信事件,Qt提供了信号与槽.信号与槽不仅可以处理GUI上发生的事件,也可以实现个体间的数据通信.值得深入把握. 2.信号与槽 信号与槽是一种用于对象间通信的机制.为了用户在 ...
- JQuery Highcharts图表控件使用说明
JQuery Highcharts图表控件使用说明 Highcharts 官网:http://www.highcharts.com Highcharts 官网示例:http://www.highcha ...
- 强大的Winform Chart图表控件使用说明
强大的Winform Chart图表控件使用说明 引言 使用说明 使用示例 资料 引言 以前经常开发网页端的软件,图表组件一般用echart,功能和样式都非常齐全.但是当用winform开发时,类似的 ...
- VS+QT开发Ocx/ActiveX控件 一
VS+QT开发Ocx/ActiveX控件 一 VS+QT开发Ocx/ActiveX控件-------网页中全屏 二 QT开发ActiveX控件 一:所用IDE版本,需用管理员权限 二:创建Active ...
- Qt开发Activex笔记(二):Qt调用Qt开发的Activex控件
若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/113789693 长期持续带来更多项目与技术分 ...
- QT QSpinBox 整数计数器控件 使用详解
本文详细的介绍了QSpinBox控件的各种操作,例如:获取数值.设置前后缀.设置最大/小值.进制转换.关联信号槽.优化信号.QSS优化.文件源码.样式表 .效果:可以设置背景.边框.向上按钮.向下按钮 ...
- WebPlayer9视频点播系统 - 客户端控件使用说明
WebPlayer9 - 客户端控件使用说明 1.控件属性 classid="clsid:947BA55B-2113-4349-8784-FFB9D7F881C9" Mode: 控 ...
- QT自定义控件之倒计时控件
文章目录 1 效果预览 2 加载背景图片 3 尺子可拉动头部的实现 4 整个尺子部分的实现 5 表盘的实现 6 主界面代码实现 1 效果预览 我们首先来看下实现的效果: 右边的表带拉动会使左边的表盘跟 ...
- 【Qt开发】常用控件--QLineEdit
QLineEdit是单行文本编辑控件.比如用户名,密码等输入框可以使用该控件. 所属头文件<QLineEdit> 常用方法 1.void setText(const QString &am ...
最新文章
- IOS 后台挂起程序 当程序到后台后,继续完成定位任务
- 服务器 上传文件 杀毒,一种实现文件上传网站后自动进行杀毒的方法及系统
- python编程函数_python编程中函数和参数你必须知道的
- add函数 pytorch_pytorch常用函数
- java和python的比较-java和python的比较
- 实验一 查看CPU和内存 用机器指令和汇编指令编程
- Java报告比较日期,java 比较两个日期大小(1)
- 双剑合璧:邮件客户端与邮件系统
- samtools常用命令详解
- Spring 框架教程
- (11)FPGA面试题同步复位与异步复位
- 【OpenCV】绘图与注释——绘制色差图
- 【笔记】架构整洁之道
- Windows文件夹或文件名过长无法删除
- 对京东商品评论进行词频统计并制作词云
- Git 如何撤回已经push到远端上的代码
- 基于java springboot租房平台设计,公寓租赁系统
- 国际结算名词解释汇总
- android 装饰着模式,Android与设计模式——装饰者(Decorator)模式
- 欧盟加密资产市场监管法案(Markets in Crypto Assets Regulation Bill,MiCAR法案)内容概览