QtableWidget用法流程
QtableWidget用法流程
作者:流火 日期:2020/5/10
QTableWidget的基本构造函数
QTableWidget 是QTableview的子类。主要去呗是QTableView 可以使用自定义的数据
模型来显示内容,也就是先要通过setModel来绑定数据源。而Qtablewidget则只是能通过标准的数据模型,并且单元格数据是QTableWidgetItem的对象来实现的也就是不需要数据源,将逐个单元格内的信息填好即可。
构造函数以及基本设置:
QTableWidget *tablewidget = new QTableWidget(10,5);//创建一个QTableWodget对象,有10行五列
//还可以
QTableWidget *tablewidget = new QTableWidget();
tw->setRowCount(10);//设置行数
tw->setColumnCount(5);//设置列数
tw->setWindowTitle("QTableWidget & item");//设置窗口标题
tw->resize(350,200);//重新设置大小
QStringList header;//QStringList 类似一个QString数组
header<<"month"<<"description";//<< 是一个重载符,作用类似于vector中的push_back,往数组最后添加QString元素
tw->setHorizontalHeaderLabels(header);//设置水平的头标签
//seiItem 是用来设置QtableWidget 各个单元格。单元格从(0,0)开始。
//参数共有三个,前面是两个分别是坐标x,y后面是单元格对象
//QTableWidgetItem是QTableWidget单元格对象。
tw->setItem(0,0,new QTableWidgetItem("jan"));
tw->setItem(0,1,new QTableWidgetItem("janmonth"));
最后效果:
对QTableWidget本身的实现
- 将表格变为禁止编辑
tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
QAbstractItemView::NoEditTriggers 0 不能对表格内容进行修改
QAbstractItemView::CurrentChanged 1 任何时候都能对单元格修改
QAbstractItemView::DoubleClicked 2 双击单元格
QAbstractItemView::SelectedClicked 4 单击已选中的内容
QAbstractItemView::EditKeyPressed 8 Editing starts when the platform edit key has been pressed over an item.
QAbstractItemView::AnyKeyPressed 16 按下任意键就能修改
QAbstractItemView::AllEditTriggers 31 以上条件全包括
设置表格为整行选择
tw->setSelectionBehavior(QAbstractITemView::ExtendedSelection);
//设置为可以选择多个目标
Constant Value Description
QAbstractItemView::SelectItems 0 Selecting single items.选中单个单元格
QAbstractItemView::SelectRows 1 Selecting only rows.选中一行
QAbstractItemView::SelectColumns 2 Selecting only columns.选中一列
单个选中和多个选中
tw->setSelectionMode(QAbstracItemView::ExtendedSelecttion);//设置为多个选中
参数还有:
QAbstractItemView::NoSelection 不能选择
QAbstractItemView::SingleSelection 选中单个目标
QAbstractItemView::MultiSelection 选中多个目标
QAbstractItemView::ExtendedSelection QAbstractItemView::ContiguousSelection 的区别不明显,主要功能是正常情况下是单选,但按下Ctrl或Shift键后,可以多选
- 表格表头的显示与隐藏
对于水平胡垂直方法的表头,可以用以下方式进行 隐藏/显示 的设置。注意:必须包含#include
tableWidget->verticalHeader()->setVisible(false); //隐藏列表头
tableWidget->horizontalHeader()->setVisible(false); //隐藏行表头
- 对表头文字的字体,颜色进行设置 注意:需要#include
//获得水平方向表头的Item对象
QTableWidgetItem *item1 = tableWidget->horizontalHeaderItem(0);
item1->setFont(QFont(字体名称));//设置字体样式
item->setBackgroundColor(QColor(0,60,10));//设置单元格背景颜色 注意会显示过期在qt5
item->setTextColor(QColor(QColor::Red));//设置字体颜色会显示过期
- 单元格里添加控件
QTableWidget允许把控件也放到单元格中。比如下拉框
QComboBox *comBox = new QComboBox();
comBox->addItem("Y");
comBox->addItem("N");
tableWidget->setCellWidget(0,2,comBox);
单元格的设置
- 单元格设置字体颜色和背景颜色;
QTableWidgetItem *item = new QTableWidgetItem("Apple");
item->setBackgroundColor(QColor(0,60,10)); //蛇者背景颜色
item->setTextColor(QColor(200,111,100)); //设置颜色字体
item->setFont(QFont("Helvetica")); //设置文字字体
tableWidget->setItem(0,3,item); //让某个单元格应用
- 设置单元格内文字的对齐方式
//先定义个QtablewidgetItem对象
QTablewidgetItem 8item = new QTableWidgetItem();
ite.setTextAlignment(Qt.AlignLeft);//设置左对齐
//水平对齐方式
Constant Value Description
Qt.AlignLeft 0x0001 Aligns with the left edge.
Qt.AlignRight 0x0002 Aligns with the right edge.
Qt.AlignHCenter 0x0004 Centers horizontally in the available space.
Qt.AlignJustify 0x0008 Justifies the text in the available space.
//垂直对齐方式
Constant Value Description
Qt.AlignTop 0x0020 Aligns with the top.
Qt.AlignBottom 0x0040 Aligns with the bottom.
Qt.AlignVCenter 0x0080 Centers vertically in the available space.
如果两种都要设置,只需要将一个符号‘|’。只能是一个垂直一个水平,不能是相同的方向
- 合并单元格
tableWidget->setSpan(0, 0, 3, 1);
//参数的意思是从0行到3行(不包括三行)0列到1列(不包括一列)合并成一个单元格
设置单元格的大小
首先,可以指定某个行或者列的大小
tableWidget->setColumnWidth(3,200);
tableWidget->setRowHeight(3,60);
还可以将行和列的大小设为与内容相匹配
tableWidget->resizeColumnsToContents();
tableWidget->resizeRowsToContents();
- 获得单元格内容
通过实现 itemClicked(QTableWidgetItem *)信号的槽函数获取鼠标单击到的单元格的指针进而获得其中的文字信息
connect(tableWidget,SIGNAL(itemClicked(QTreeWidgetItem*)),this, SLOT( getItem(QTreeWidgetItem*)) );
QtableWidget用法流程的更多相关文章
- {Repeater控件} Repeater控件的用法流程及实例
一.Repeater控件的用法流程及实例: 1.首先建立一个网站,新建一个网页index.aspx. 2.添加或者建立APP_Data数据文件,然后将用到的数据库文件放到APP_Data文件夹中. 3 ...
- ajax用法流程
这里是用javascript做的一个ajax的一个用法以及总结概括.供友友们进行参考. 1 window.onload=function() { var oBtn=document.getElemen ...
- QTableWidget 用法总结(只能使用标准的数据模型,并且其单元格数据是QTableWidgetItem的对象)
QTableWidget是QT程序中常用的显示数据表格的空间,很类似于VC.C#中的DataGrid.说到QTableWidget,就必须讲一下它跟QTabelView的区别了.QTableWidge ...
- Qt QTableWidget用法总结
转载:李宏兵 QTableWidget是QT程序中常用的显示数据表格的空间,很类似于VC.C#中的DataGrid.说到QTableWidget,就必须讲一下它跟QTabelView的区别了. QTa ...
- Qt中 QTableWidget用法总结
转自--> http://edsionte.com/techblog/archives/3014 http://hi.baidu.com/fightiger/item/693aaa0f0f87d ...
- 关于jquery.fileupload结合PHP上传图片的开发用法流程
这阵子做了一个项目,涉及到了图片上传,以往用的都是uploadify这个插件,感觉它在PC上的使用还是很强大的, 不过最近这个项目涉及到了移动端的上传,其实uploadify也可以,但是他有一个 up ...
- git 命令用法 流程操作
Git 是一款免费的.开源的.分布式的版本控制系统.旨在快速高效地处理无论规模大小的任何软件工程. 每一个 Git克隆 都是一个完整的文件库,含有全部历史记录和修订追踪能力,不依赖于网络连接或中心服务 ...
- ASP.NET-----Repeater数据控件的用法总结(转)
一.Repeater控件的用法流程及实例: 1.首先建立一个网站,新建一个网页index.aspx. 2.添加或者建立APP_Data数据文件,然后将用到的数据库文件放到APP_Data文件夹中. 3 ...
- [转载]ASP.NET-----Repeater数据控件的用法总结
一.Repeater控件的用法流程及实例: 1.首先建立一个网站,新建一个网页index.aspx. 2.添加或者建立APP_Data数据文件,然后将用到的数据库文件放到APP_Data文件夹中. 3 ...
随机推荐
- Java实现 LeetCode 437 路径总和 III(三)
437. 路径总和 III 给定一个二叉树,它的每个结点都存放着一个整数值. 找出路径和等于给定数值的路径总数. 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点 ...
- Java 实现 蓝桥杯 等额本金
标题:等额本金 小明从银行贷款3万元.约定分24个月,以等额本金方式还款. 这种还款方式就是把贷款额度等分到24个月.每个月除了要还固定的本金外,还要还贷款余额在一个月 中产生的利息. 假设月利率是: ...
- Pycharm添加Python文件模板
#!/usr/bin/env python# -*- encoding: UTF-8 -*-'''=================================================@P ...
- React 为什么要把事件挂载到 document 上 & 事件机制源码分析
前言 我们都知道 React 组件绑定事件的本质是代理到 document 上,然而面试被问到,为什么要这么设计,有什么好处吗? 我知道肯定不会是因为虚拟 DOM 的原因,因为 Vue 的事件就能挂载 ...
- Java 8 新特性——检视阅读
Java 8 新特性--检视阅读 参考 Java 8 新特性--菜鸟 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的 ...
- Redis之分布式锁实现
点赞再看,养成习惯,微信搜索[三太子敖丙]关注这个互联网苟且偷生的工具人. 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试完整考点.资料以及我的 ...
- Android开源框架选择
Android开源项目推荐之「网络请求哪家强」 Android开源项目推荐之「图片加载到底哪家强」 Android网络框架的封装 Android Volley+OkHttp3+Gson(Jackson ...
- [原创][开源] SunnyUI.Net 国际化
SunnyUI.Net, 基于 C# .Net WinForm 开源控件库.工具类库.扩展类库.多页面开发框架 Blog: https://www.cnblogs.com/yhuse Gitee: h ...
- uniapp 基于 flyio 的 http 请求封装
之前写请求都是用别人封装好的,直接 import request 完事,自己第一次写还是一头雾水,学习了一波搞清楚了些,可以写简单的封装了. 首先要搞清楚为什么封装请求,同其他的封装一样,我们把不同请 ...
- ubuntu12.04 跳过grub选择
1.修改/etc/grub.d/00_head文件. set timeout=-1 修改成 set timeout = ${GRUB_RECORDFAIL_TIMEOUT:--1} 2.修改/etc/ ...