QTableWidget 设置列宽样式

news/2024/11/17 0:21:21/文章来源:https://www.cnblogs.com/Jeffxu/p/18358559

一、QTableWidget 有时需要设置表格的列宽样式,设置方式如下:

    // 设置竖直表头不可见ui.tableWidget->verticalHeader()->setVisible(false);// 设置水平表头不可见ui.tableWidget->horizontalHeader()->setVisible(false);// 设置列数ui.tableWidget->setColumnCount(3);// 设置所有的列铺满整个Table,每列宽度相同//ui.tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeMode::Stretch);//设置第1和第2列为自动缩放填充宽度,第3列的宽度为自适应内容的宽度ui.tableWidget->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeMode::Stretch);ui.tableWidget->horizontalHeader()->setSectionResizeMode(1, QHeaderView::ResizeMode::Stretch);ui.tableWidget->horizontalHeader()->setSectionResizeMode(2, QHeaderView::ResizeMode::ResizeToContents);

效果如下图所示:第三列为根据内容自适应大小,前两列均分剩余空间。

二、动态添加或删除对应的行

/*************************************************
* @brief  添加行
*************************************************/
void AddNewRow()
{QLineEdit* paramNameEdit = new QLineEdit();QLineEdit* paramValueEdit = new QLineEdit();QPushButton* btnDelete = new QPushButton("-");int rowCount = ui.tableWidget->rowCount();// 在表格的末尾添加新的行ui.tableWidget->insertRow(rowCount);// 将控件添加到对应的行列位置上ui.tableWidget->setCellWidget(rowCount, 0, paramNameEdit);ui.tableWidget->setCellWidget(rowCount, 1, paramValueEdit);ui.tableWidget->setCellWidget(rowCount, 2, btnDelete);// 可设置控件对应的属性,类似于tag,便于后续查找。//btnDelete->setProperty("rowIndex", rowCount); connect(btnDelete, &QPushButton::clicked, this, &Demo14_TableWidget::OnDeleteBtnClicked);
}/*************************************************
* @brief  查找当前被点击的行,删除对应行
*************************************************/
void DeleteSelectedRow()
{// 查找删除按钮所在的行,并将这一行全部删除掉QPushButton* btn = qobject_cast<QPushButton*>(sender());for(int row = 0; row < ui.tableWidget->rowCount(); row++){QWidget *itemWidget = ui.tableWidget->cellWidget(row, 2);QPushButton* itemBtn = qobject_cast<QPushButton*>(itemWidget);if(itemWidget == btn){ui.tableWidget->removeRow(row);return;}}
}

如下图,点击 +按钮将会在表格末尾添加新的行,点击- 按钮会删除改行

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/783667.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

KingbaseRAC部署案例之---基于SAN存储部署

KingbaseES 、RAC案例说明: 通过iscsi共享存储作为数据库存储文件系统,构建KingbaseES RAC架构。 适用版本: KingbaseES V008R006C008M030B0010 操作系统版本: [root@node201 KingbaseHA]# cat /etc/centos-release CentOS Linux release 7.9.2009 (Core)集群架构: 如下所…

Google只能以管理员运行

关于Google踩了一个坑,折磨了好久。记录一下。这个默认是打开的关闭之后正常快捷方式运行!

(转)《eBPF 核心技术与实战》

原文:https://fanlv.fun/2022/11/05/study-ebpf/ 概览 eBPF 是什么呢? 从它的全称“扩展的伯克利数据包过滤器 (Extended Berkeley Packet Filter)” 来看,它是一种数据包过滤技术,是从 BPF (Berkeley Packet Filter) 技术扩展而来的。 BPF 提供了一种在内核事件和用户程序…

KingbaseES V8R3集群运维案例---sys_md5修改密码错误

KingbaseES、kingbasecluster案例说明: KingbaseES V8R3集群在通过sys_md5修改SYSTEM用户密码时出现异常“invalid password length in cluster_passwd file”。 适用版本:KingbaseES V8R3 一、问题现象 ksql访问集群9999端口,提示“md5 authentication failed”:kingbasec…

音频去噪:使用Python和FFT增强音质

根据定义,声音去噪是从音频信号中去除不需要的噪音或干扰,以提高其质量和清晰度的过程。这涉及识别和隔离噪音成分(通常以不规则或高频元素为特征),并将其过滤掉,同时保持原始声音的完整性。 声音去噪目标是改善聆听体验以及音频分析和处理的准确性。过滤掉噪音对于高保真音频来…

使用 onBeforeRouteLeave 组合式函数提升应用的用户体验

title: 使用 onBeforeRouteLeave 组合式函数提升应用的用户体验 date: 2024/8/14 updated: 2024/8/14 author: cmdragon excerpt: 摘要:本文介绍了在Nuxtjs中使用onBeforeRouteLeave组合式函数来提升应用用户体验的方法。onBeforeRouteLeave允许在组件离开当前路由前执行逻辑…

线程状态

阻塞状态 import lombok.SneakyThrows;import java.text.SimpleDateFormat;public class T {@SneakyThrowspublic static void main(String[] args) {new Thread(() -> {synchronized (T.class) {try {Thread.sleep(6000);System.out.println(new SimpleDateFormat("yy…

502错误分析及处理(Nginx应用服务器出现502错误的原因)

Nginx应用服务器出现502错误的原因很多,但是基本都是资源不够造成的。 包括:内存不足,CPU超标,硬盘满了,另外可能也有程序导致php-fpm停止运行。对应的的解决办法: 内存和CPU超标,通过重启一下php-fpm 和nginx mysql 三个服务可以临时解决,如果是1核1g的配置且经常出现…

【医疗器械质量管理体系GB/T42061-2022法规内容了解】

国标GB/T42061 等同于 国际标准ISO13485(GB/T42061-2022 idt ISO 13485:2016) 4.1 组织要求4.2文件要求5、管理职责6、资源管理7、产品实现8、测量,分析与改进

.NET 8 中利用 MediatR 实现高效消息传递

前言 MediatR 是 .NET 下的一个实现消息传递的库,轻量级、简洁高效,用于实现进程内的消息传递机制。它基于中介者设计模式,支持请求/响应、命令、查询、通知和事件等多种消息传递模式。通过泛型支持,MediatR 可以智能地调度不同类型的消息,非常适合用于领域事件处理。 在本…

ThrottleStop tpl 无法解锁功耗墙 原因

https://www.ibmnb.com/thread-2041588-1-1.html 1. 主界面设置不要勾选Disable-Turbo / BD-PROCHOT (不然后面的TPL,FIVR配置可能不起作用的)需要勾选Speed-shift EPP (用内置频率管理, 128默认就可以)SpeedStep 也勾上(提升响应速度)选择Pefermance性能模式(下面具体FL…