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本身的实现

  1. 将表格变为禁止编辑
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 以上条件全包括
  1. 设置表格为整行选择

    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.选中一列
  2. 单个选中和多个选中

tw->setSelectionMode(QAbstracItemView::ExtendedSelecttion);//设置为多个选中

参数还有:

QAbstractItemView::NoSelection 不能选择

QAbstractItemView::SingleSelection 选中单个目标

QAbstractItemView::MultiSelection 选中多个目标

QAbstractItemView::ExtendedSelection QAbstractItemView::ContiguousSelection 的区别不明显,主要功能是正常情况下是单选,但按下Ctrl或Shift键后,可以多选
  1. 表格表头的显示与隐藏

​ 对于水平胡垂直方法的表头,可以用以下方式进行 隐藏/显示 的设置。注意:必须包含#include

tableWidget->verticalHeader()->setVisible(false); //隐藏列表头
tableWidget->horizontalHeader()->setVisible(false); //隐藏行表头
  1. 对表头文字的字体,颜色进行设置 注意:需要#include
//获得水平方向表头的Item对象
QTableWidgetItem *item1 = tableWidget->horizontalHeaderItem(0);
item1->setFont(QFont(字体名称));//设置字体样式
item->setBackgroundColor(QColor(0,60,10));//设置单元格背景颜色 注意会显示过期在qt5
item->setTextColor(QColor(QColor::Red));//设置字体颜色会显示过期
  1. 单元格里添加控件

QTableWidget允许把控件也放到单元格中。比如下拉框

QComboBox *comBox = new QComboBox();
comBox->addItem("Y");
comBox->addItem("N");
tableWidget->setCellWidget(0,2,comBox);

单元格的设置

  1. 单元格设置字体颜色和背景颜色;
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); //让某个单元格应用
  1. 设置单元格内文字的对齐方式
//先定义个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.

如果两种都要设置,只需要将一个符号‘|’。只能是一个垂直一个水平,不能是相同的方向

  1. 合并单元格
tableWidget->setSpan(0, 0, 3, 1);
//参数的意思是从0行到3行(不包括三行)0列到1列(不包括一列)合并成一个单元格
  1. 设置单元格的大小

    首先,可以指定某个行或者列的大小

    tableWidget->setColumnWidth(3,200);
    tableWidget->setRowHeight(3,60);

    还可以将行和列的大小设为与内容相匹配

tableWidget->resizeColumnsToContents();
tableWidget->resizeRowsToContents();
  1. 获得单元格内容

通过实现 itemClicked(QTableWidgetItem *)信号的槽函数获取鼠标单击到的单元格的指针进而获得其中的文字信息

connect(tableWidget,SIGNAL(itemClicked(QTreeWidgetItem*)),this, SLOT( getItem(QTreeWidgetItem*)) );

QtableWidget用法流程的更多相关文章

  1. {Repeater控件} Repeater控件的用法流程及实例

    一.Repeater控件的用法流程及实例: 1.首先建立一个网站,新建一个网页index.aspx. 2.添加或者建立APP_Data数据文件,然后将用到的数据库文件放到APP_Data文件夹中. 3 ...

  2. ajax用法流程

    这里是用javascript做的一个ajax的一个用法以及总结概括.供友友们进行参考. 1 window.onload=function() { var oBtn=document.getElemen ...

  3. QTableWidget 用法总结(只能使用标准的数据模型,并且其单元格数据是QTableWidgetItem的对象)

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

  4. Qt QTableWidget用法总结

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

  5. Qt中 QTableWidget用法总结

    转自--> http://edsionte.com/techblog/archives/3014 http://hi.baidu.com/fightiger/item/693aaa0f0f87d ...

  6. 关于jquery.fileupload结合PHP上传图片的开发用法流程

    这阵子做了一个项目,涉及到了图片上传,以往用的都是uploadify这个插件,感觉它在PC上的使用还是很强大的, 不过最近这个项目涉及到了移动端的上传,其实uploadify也可以,但是他有一个 up ...

  7. git 命令用法 流程操作

    Git 是一款免费的.开源的.分布式的版本控制系统.旨在快速高效地处理无论规模大小的任何软件工程. 每一个 Git克隆 都是一个完整的文件库,含有全部历史记录和修订追踪能力,不依赖于网络连接或中心服务 ...

  8. ASP.NET-----Repeater数据控件的用法总结(转)

    一.Repeater控件的用法流程及实例: 1.首先建立一个网站,新建一个网页index.aspx. 2.添加或者建立APP_Data数据文件,然后将用到的数据库文件放到APP_Data文件夹中. 3 ...

  9. [转载]ASP.NET-----Repeater数据控件的用法总结

    一.Repeater控件的用法流程及实例: 1.首先建立一个网站,新建一个网页index.aspx. 2.添加或者建立APP_Data数据文件,然后将用到的数据库文件放到APP_Data文件夹中. 3 ...

随机推荐

  1. Java实现 LeetCode 415 字符串相加

    415. 字符串相加 给定两个字符串形式的非负整数 num1 和num2 ,计算它们的和. 注意: num1 和num2 的长度都小于 5100. num1 和num2 都只包含数字 0-9. num ...

  2. Java实现 蓝桥杯VIP 算法提高 能量项链

    算法提高 能量项链 时间限制:1.0s 内存限制:256.0MB 问题描述 在Mars星球上,每个Mars人都随身佩带着一串能量项链.在项链上有N颗能量珠.能量珠是一颗有头标记与尾标记的珠子,这些标记 ...

  3. Java实现 蓝桥杯VIP 算法提高 交换Easy

    算法提高 交换Easy 时间限制:1.0s 内存限制:512.0MB 问题描述 给定N个整数组成的序列,每次交换当前第x个与第y个整数,要求输出最终的序列. 输入格式 第一行为序列的大小N(1< ...

  4. Java实现 LeetCode 151 翻转字符串里的单词

    151. 翻转字符串里的单词 给定一个字符串,逐个翻转字符串中的每个单词. 示例 1: 输入: "the sky is blue" 输出: "blue is sky th ...

  5. java实现字符串比较

    标题:字符串比较 我们需要一个新的字符串比较函数compare(s1, s2). 对这个函数要求是: 1. 它返回一个整数,表示比较的结果. 2. 结果为正值,则前一个串大,为负值,后一个串大,否则, ...

  6. iOS -程序启动原理和UIApplication的介绍

    一.UIApplication 简介       (1)UIApplication对象是应用程序的象征,一个UIApplication对象就代表一个应用程序. (2)每一个Application都有自 ...

  7. SpringCloud+Ehcache

    1.pom文件引入 <!-- https://mvnrepository.com/artifact/org.ehcache/ehcache --><dependency>< ...

  8. 06.Django-用户认证

    用户认证 Django 内置一个 auth 模块,帮助用户实现注册.登录.注销以及修改密码等功能,帮助开发者省去了很多功夫 用于认证的数据表 auth_user User是auth模块中维护用户信息的 ...

  9. git push 错误,回滚 push操作

    作者:故事我忘了¢个人微信公众号:程序猿的月光宝盒 0.记一次使用git push后,覆盖了同事代码的糗事 前言: ​ 都在WebStorm中操作,Idea或者PyCharm同理 ​ 为了高度还原尴尬 ...

  10. HashMap的方法及功能、StringBuffer的方法

    Hashmap的存值:(map.put(key,value)) 1 public static void main(String[] args) { 2 ///Integer/map.put(&quo ...