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. 使用turtle库绘制同心圆

    import turtle as t t.pensize(3) t.setup(600,600,50,50) t.pencolor("yellow") t.penup() t.pe ...

  2. Java实现 蓝桥杯VIP 算法提高 十进制转八进制数

    import java.util.Scanner; public class 十进制转八进制 { public static void main(String[] args) { Scanner sc ...

  3. java实现取球游戏

    /* 今盒子里有 n 个小球,A.B 两人轮流从盒中取球,每个人都可以看到另一个人取了多少个, 也可以看到盒中还剩下多少个,并且两人都很聪明,不会做出错误的判断. 我们约定: 每个人从盒子中取出的球的 ...

  4. Linux笔记(第一天)

    一.命令 lscpu                               -- 查看cpu free                                 -- 内存查看 -m 以M ...

  5. 小师妹学JavaIO之:文件系统和WatchService

    目录 简介 监控的痛点 WatchService和文件系统 WatchSerice的使用和实现本质 总结 简介 小师妹这次遇到了监控文件变化的问题,F师兄给小师妹介绍了JDK7 nio中引入的Watc ...

  6. Python 3.9 beta2 版本发布了,看看这 7 个新的 PEP 都是什么?

    原作:Jake Edge 译者:豌豆花下猫@Python猫 英文:https://lwn.net/Articles/819853/ 随着 Python 3.9.0b1 的发布,即开发周期中计划的四个 ...

  7. tp5的 LayUI分页样式实现

    1.先配置你的分页参数: //分页配置 'paginate'      => [ 'type'      => 'Layui', 'var_page'  => 'page', 'li ...

  8. 附022.Kubernetes_v1.18.3高可用部署架构一

    kubeadm介绍 kubeadm概述 参考附003.Kubeadm部署Kubernetes. kubeadm功能 参考附003.Kubeadm部署Kubernetes. 本方案描述 本方案采用kub ...

  9. OpenSSH详解

    OpenSSH详解(思维导图) 1. SSH概述 SSH 软件架构 认证方式 2. OpenSSH 2.1 客户端程序ssh 配置文件 ssh命令 客户端免密登录 scp sftp 2.2 服务端程序 ...

  10. python+selenium识别图片验证码

    import timeimport pytesseractfrom PIL import Image, ImageEnhancefrom selenium import webdriver url = ...