QTableWidget使用

qt的qtableview锁定第一列(或者其他列) 我这个是根据qt官方例子改良之后的。这个都可以根据自己不同需要来定制。其实这个qt官方已经有例子,感兴趣的可以参考下。 阅读详情
  1. table->setSelectionMode(QAbstractItemView::SingleSelection)  
  2. table.horizontalHeader()->setResizeMode(QheaderView::Fixed);  
  3. table.horizontalHeader()->setStretchLastSection(true);  
  4. table.setEditTrigger(QAbstractItemView::NoEditTriggers);  
  5. table.setShowGrid(false);  

1.QTableWidget不能在mainwindow中随主窗口的大小变化?

  解决:在表格外部添加布局。

  代码:tableWidget = new QTableWidget;

         tableWidget ->setObjectName(QString::fromUtf8("tableWidget"));

         QVBoxLayout *verticalLayout;

         verticalLayout->addWidget(tableWidget );

2.将表格变为禁止编辑:

  tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);

  (参数含义:QAbstractItemView.NoEditTriggers--不能对表格内容进行修改

              QAbstractItemView.CurrentChanged--任何时候都能对单元格修改

              QAbstractItemView.DoubleClicked--双击单元格

              QAbstractItemView.SelectedClicked--单击已选中的内容 

              QAbstractItemView.EditKeyPressed--

              QAbstractItemView.AnyKeyPressed--按下任意键就能修改

              QAbstractItemView.AllEditTriggers--以上条件全包括)

3.设置表格为整行选择

  tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);  //整行选中的方式

  (参数含义:AbstractItemView.SelectItems--选中单个单元格

              QAbstractItemView.SelectRows--选中一行

              QAbstractItemView.SelectColumns--选中一列)

4.单个选中和多个选中的设置:

  tableWidget->setSelectionMode(QAbstractItemView::ExtendedSelection);  //设置为可以选中多个目标

 (参数含义:QAbstractItemView.NoSelection--不能选择

             QAbstractItemView.SingleSelection--选中单个目标

             QAbstractItemView.MultiSelection--选中多个目标

  QAbstractItemView.ExtendedSelection/QAbstractItemView.ContiguousSelection 的区别不明显,主要功能是正常情况下是单选,但按下Ctrl或Shift键后,可以多选)

5.表格表头的显示与隐藏

  对于水平或垂直方法的表头,可以用以下方式进行 隐藏/显示 的设置:

  tableWidget->verticalHeader()->setVisible(false);   //隐藏列表头  

  tableWidget->horizontalHeader()->setVisible(false); //隐藏行表头  

  注意:需要 #include <QHeaderView>

6.对表头文字的字体、颜色进行设置 

  QTableWidgetItem *columnHeaderItem0 = tableWidget->horizontalHeaderItem(0); //获得水平方向表头的Item对象  

  columnHeaderItem0->setFont(QFont("Helvetica")); //设置字体  

  columnHeaderItem0->setBackgroundColor(QColor(0,60,10)); //设置单元格背景颜色  

  columnHeaderItem0->setTextColor(QColor(200,111,30)); //设置文字颜色

  注意:需要 #include <QHeaderView>

7.在单元格里加入控件:

   QComboBox *comBox = new QComboBox();

   comBox->addItem("Y");

   comBox->addItem("N");

   tableWidget->setCellWidget(0,2,comBox); 

8.单元格中添加图片:

  tableWidget->setItem(row, 0, new QTableWidgetItem(QIcon(":/new/images/kingdemo.ico"),tr("")));

9设置单元格字体颜色、背景颜色和字体字符:

  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);

  另:如果需要对所有的单元格都使用这种字体,则可以使用  tableWidget->setFont(QFont("Helvetica"));

10.设置单元格内文字的对齐方式

 水平对齐方式有:

 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.

 如果两种都要设置,只要用 Qt.AlignHCenter |  Qt.AlignVCenter 的方式即可

11.合并单元格:

  tableWidget->setSpan(0, 0, 3, 1)  # 其参数为: 要改变单元格的1行数、2列数,要合并的3行数、4列数

12.设置单元格的大小

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

   tableWidget->setColumnWidth(3,200);

   tableWidget->setRowHeight(3,60);

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

   tableWidget->resizeColumnsToContents();

   tableWidget->resizeRowsToContents();

13.获得单击单元格的内容

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

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

//将itemClicked信号与函数getItem绑定

14.QTableWidget要调整表格行宽主要涉及以下函数

  tableWidget->horizontalHeader()->setResizeMode(QHeaderView::Stretch);//使列完全填充并平分

  tableWidget->verticalHeader()->setResizeMode(QHeaderView::Stretch);// 行自适应宽度                                                                                                      

  tableWidget->resizeColumnsToContents(); //根据内容调整列宽

  tableWidget->resizeColumnToContents(int col);//根据内容自动调整给定列宽

  tableWidget->horizontalHeader()->setResizeMode//把给定列设置为给定模式

  主要模式有Stretch和Fixed

15.添加表头内容:

  方法一:

  QStringList header;

  header<<""<<tr("1")<<tr("2")<<tr("3")<<tr("4)<<tr("5");

  方法二:

  tableWidget->setHorizontalHeaderLabels(QStringList() << tr("1")<<tr("2")<<tr("3")<<tr("4)<<tr("5"));

16.清除:

  tableWidget->clear();//清除所有可见数据(包括表头),行还在

  tableWidget->clearContents();//只清除表中数据,不清除表头内容

  tableWidget->setRowCount(0);//连行也清除掉

15.一些零碎的知识点代码:

  int row = tableWidget->rowCount();//获取表格中当前总行数

  tableWidget->setRowCount(row+1);//添加一行

  tableWidget->removeRow(row);//清除已有的行列

  Int row1 = tableWidget->currentItem()->row();//当前选中行

  bool focus = tableWidget->isItemSelected(tableWidget->currentItem());//判断是否选中一行

  QString proName = tableWidget->item(row, col)->text();//获取某一格内容

  setShowGrid(true);//显示表格线

  verticalHeader()->setVisible(false);//隐藏左边垂直

  QHeaderView *headerView = horizontalHeader();

  headerView->setMovable(false);//去除表头的移动

  headerView->resizeSection(0,284);//设置第一列宽

  headerView->resizeSection(1,127);//设置第二列宽

  headerView->setResizeMode(QHeaderView::Fixed);//列表不能移动

  headerView->setClickable(false);//不响应鼠标单击

  setEditTriggers(QTableWidget::NoEditTriggers);//不能编辑

  setSelectionBehavior(QTableWidget::SelectRows);//一次选中一行

  setSelectionMode(QAbstractItemView::SingleSelection);//只能单选

  

  setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);//去掉水平滚动条

  setVerticalScrollMode(QAbstractItemView::ScrollPerItem);//垂直滚动条按项移动

  setAutoScroll(false);//去掉自动滚动


原文链接:http://blog.youkuaiyun.com/hugengyong/article/details/8184527

Qt QTableWidget表格控件的用法(非常详细) Qt QTableWidget表格控件的用法(非常详细) QTableWidget 是 Qt 提供的一种表格控件(如图 1 所示),类似于我们经常使用的 Excel 表格,可以将数据以表格的方式展示给用户。 整个 QTableWidget 表格可以分为 3 个区域: 区域 ① 和 ② 都是表头,区域 ① 设置每一行的表头,区域 ② 设置每一列的表头。我们可以自定义两个区域内的表头,比如第一列是各个教程的名称,所以第一列的表头可以修改为“教程名称”; 区域 ③ 为数据区,表格中所有的数据都位于此区域,该区域内 阅读详情

相关推荐

QTableWidget使用总结

QTableWidget表格控件常用操作及说明

weixin_48042856的博客 9931

【QT】QTableWidget的选择模式

QTableWidget可以通过setSelectionMode()和setSelectionBehavior()来设置选择的模式。 setSelectionBehavior() 此属性保存视图使用的选择行为。此属性保存选择是根据单个项目,行还是列进行的。 setSelectionMode() 此属性保存视图在哪种选择模式下运行。此属性控制用户是否可以选择一个或多个项目,并且在多个项目...

qq_38770502的博客 9952

QTableWidget控件使用总结

http://blog.youkuaiyun.com/mingxia_sui/article/details/7681863 1.QTableWidget不能在mainwindow中随主窗口的大小变化? 解决:在表格外部添加布局。 代码:tableWidget=newQTableWidget; tableWidget->setObjectName(

墙角里的光线 3419

QTableWidget的用法总结

在使用Qt不多的日子里,已经两次用到了QTableWidget这个控件,也慢慢的习惯和喜欢上了它。再使用QTableWidget的时候,已不像刚开始使用时的迷茫。嗯嗯。现在就来总结总结我与QTableWidget相识的历程......(*^__^*) 嘻嘻…… 使用时也查过不少资料,在此感谢前辈们的用心总结与分享!    1.QTableWidget不能在mainwindow中随主窗口的大小

岁小草的草窝 2万+

QT表格固定第一列,拖动时第一列不会遮挡

QT表格固定第一列,有需要的同学下来参考

qt多种页面切换动画实现 ,效果非常好,物超所值

qt多种页面切换动画实现 ,效果非常好,物超所值,使用qt5以上版本编译

Qt之QTableWidget详细使用

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

m沉默 6万+

网络抓包实战:如何捕获与解析802.1Q VLAN标签报文

在网络通信中,数据包是信息传输的基本单元,而VLAN(虚拟局域网)技术通过在数据链路层插入802.1Q标签,实现了网络流量的逻辑隔离与高效管理。其核心原理是在标准以太网帧头中嵌入4字节的VLAN标识,使交换机能够根据VID(VLAN ID)进行精准转发。掌握VLAN报文的捕获与解析技术,对于网络故障排查、安全审计和性能优化具有重要价值,尤其在需要验证网络隔离策略或诊断Trunk链路异常时。本文聚焦于使用Wireshark工具,结合端口镜像等实操方法,详细演示如何抓取并解读携带802.1Q标签的原始报文,帮助

weixin_33417488的博客 381

QTableWidget 详细使用指南

表格控件几乎是每个QT应用程序都会用到的控件之一,在QT框架中有两个表格组件一个是QTableWidget,另一个是QTableView,本文从实践出发详细介绍了QTableWidget的使用细节,包括表头设置、表格属性、添加数据、处理用户交互以及其他一些有用的技巧。本文详细介绍了实际开发过程中QTableWidget 的一些使用细节,提供了许多实用方法和功能示例,读者可以根据实际需求进行进一步的探索和使用。

北极星的技术笔记 1万+

TMC2209串口配置实战:从寄存器解析到电机精准控制

本文详细解析TMC2209步进电机驱动芯片的串口配置方法,从硬件连接到UART通信协议,再到核心寄存器功能详解。通过实战案例展示电流控制、微步细分和速度调节等关键配置,帮助工程师实现电机精准控制,并提供了常见故障诊断和优化技巧。

f6g7h8i9j的博客 1173

Ubuntu下Charm-Crypto安装

经过一下午的努力终于是把Charm-Crypto给安上了,经过查询资料,大致有三种方案(两坑一可行)。 适用于我的电脑的是Ubuntu 18.04版本。 第一种方案是根据连接https://pypi.org/project/charm-crypto/的教程进行安装,但是该方案的优势在于下载快速,缺陷在于Ubuntu系统仅仅更新到13+版本。 第二种就是网络博客上的介绍,内容与第一种较类似,但是有16+,18+成功的例子,缺点就是bug太多,我大部分时间都耗在了这上边,而且还没有成功。 第三中是github上

Mr.Yi的博客 2284

QT之QTableWidget使用

文章目录 最近QT用了一下QTableWidget,有必要记录一下,方便以后查阅

zhaoyun_zzz的专栏 1035

快速上手:网页版EggNOG功能注释全流程解析

本文详细解析了网页版EggNOG在蛋白序列功能注释中的全流程操作,从初识工具到实战技巧,涵盖FASTA格式处理、参数设置、结果解读及常见问题解决方案。特别适合生物信息学初学者快速掌握这一高效注释工具,提升非模式生物基因组研究的注释效率。

weixin_29310631的博客 189

QTableWidget的使用

转自:http://www.cnblogs.com/lhb3188/archive/2012/02/09/2343614.html QTableWidget是QT程序中常用的显示数据表格的空间,很类似于VC、C#中的DataGrid。说到QTableWidget,就必须讲一下它跟QTabelView的区别了。QTableWidget是QTableView的子类,主要的区别是QTableVie

feixiang_927的专栏 475

STC15W204S最小系统开发指南:从串口通讯到自动热加载全流程

本文详细介绍了STC15W204S最小系统的完整开发流程。从芯片资源解析、最小系统搭建、串口通讯驱动编写(使用Timer2生成波特率),到实现基于魔术值触发的自动热加载功能,并最终集成Keil与STC-ISP软件,构建高效的自动化开发工作流,显著提升嵌入式调试效率。

a1b2c的博客 391

【异常】XXL-JOB提示异常ERROR com.xxl.job.core.util.XxlJobRemotingUtil - connect timed out

打开XXL-JOB的ELK,发现一堆报错。

奶爸的编程之路,也就一周冷个三天 2046

python qtablewidget_【转载】pyqt QTableWidget的使用

QTableWidget是QT程序中常用的显示数据表格的空间,很类似于VC、C#中的DataGrid。说到QTableWidget,就必须讲一下它跟QTabelView的区别了。QTableWidget是QTableView的子类,主要的区别是QTableView可以使用自定义的数据模型来显示内容(也就是先要通过setModel来绑定数据源),而QTableWidget则只能使用标准的数据模型,并...

weixin_39576294的博客 637

Test软件:Keysight二次开发_(1).Keysight软件开发概述

VISA(Virtual Instrument Software Architecture)库是Keysight提供的一种标准化的仪器控制接口,支持多种编程语言和开发环境。仪器通信:通过GPIB、USB、以太网等接口与仪器进行通信。数据采集:从仪器中获取测量数据。命令发送:向仪器发送控制命令。错误处理:处理通信过程中可能出现的错误。测试自动化是指通过编写脚本或程序来自动执行测试任务,从而提高测试效率和减少人为错误。Keysight的测试设备和仪器支持多种编程语言和开发环境,使得测试自动化变得相对容易。

2401_87715305的博客 1356

Qt之QTableWidget的使用及常用设置

(1)创建一个新的表格控件 QTableWidget *table=new QTableWidget(); (2)设置列数 table->setColumnCount(3);//设置3列 注意:如果内容超过3列,则无法显示超过3列的内容,所以需要看情况重新设置列数 (3)设置行数 table->setRowCount(5);//设置5行 注意:如果内容超过5行,则无法显示超过3行的内容...

a1725501402的博客 2656

图神经网络与大模型融合的理论综述:架构、机制与未来方向

然而,它们普遍缺乏对图结构数据的原生支持,无法直接处理边、节点之间的拓扑关系,这限制了其在关系密集型任务中的表现 [23]。2020年发布的BERT [16] 开启了自监督预训练时代,而2021年后,T5 [17]、PaLM [18]、LLaMA [19] 等模型相继推出,参数规模突破千亿级,展现出惊人的上下文学习(In-context Learning)与链式推理(Chain-of-Thought)能力 [20]。例如,将医学影像作为图节点,结合病理报告文本,实现更精准的疾病诊断 [58]。

andeyeluguo的博客 295

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

QTableWidget详情使用

QTableWidget详情使用 QTableWidget是Qt开发设计者模式中非常常用的一个表格控件。 QTableWidget属性设置 (1)表格平均分配行列宽 代码如下(示例): ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);//平均分配列宽 ui->tableWidget->verticalHeader()->setSectionResizeMode(

qq_36659059的博客 1112

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

QTableWidget的使用案例

在选择了行时,设置复选框的选中状态。点击复选框后,设置行的选中状态。

庄生晓梦 531

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

上一篇: 关于函数式编程(Functional Programming)的学习笔记Ⅰ
下一篇: C++的输出精度控制(转)
静水若流深
博客等级 码龄14年 5粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值