Qt的QTableWidget样式设置
在 Qt 中,可以通过样式表(QSS)为 QTableWidget 设置各种样式。以下是一些常见的样式设置示例:
1. 基本样式设置
tableWidget->setStyleSheet(// 表格整体样式"QTableWidget {"" background-color: #F0F0F0;" // 背景色" gridline-color: #C0C0C0;" // 网格线颜色" border: 1px solid gray;" // 边框"}"// 表头样式"QHeaderView::section {"" background-color: #404040;" // 表头背景" color: white;" // 文字颜色" padding: 4px;" // 内边距" border: 1px solid #505050;" // 边框" min-height: 25px;" // 最小高度"}"// 单元格样式"QTableWidget::item {"" color: #333333;" // 文字颜色" border-bottom: 1px solid #D0D0D0;" // 底部边框"}"// 选中状态"QTableWidget::item:selected {"" background-color: #B8D6FF;" // 选中背景色" color: black;" // 选中文字颜色"}"
);
2. 高级样式设置
// 交替行颜色(需要开启交替行颜色功能)
tableWidget->setAlternatingRowColors(true);
tableWidget->setStyleSheet("QTableWidget { alternate-background-color: #F8F8F8; }"
);// 角部按钮样式(表格左上角按钮)
tableWidget->setStyleSheet("QTableCornerButton::section {"" background-color: #404040;"" border: 1px solid #505050;""}"
);// 禁用状态样式
tableWidget->setStyleSheet("QTableWidget:disabled {"" color: #808080;"" background-color: #F0F0F0;""}"
);// 设置特定列宽/行高
tableWidget->horizontalHeader()->setDefaultSectionSize(150); // 列宽
tableWidget->verticalHeader()->setDefaultSectionSize(30); // 行高
3. 自定义单元格样式
// 通过代理自定义样式(需要继承 QStyledItemDelegate)
class CustomDelegate : public QStyledItemDelegate {
public:void paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const override {// 自定义绘制逻辑if(index.column() == 0) {painter->fillRect(option.rect, QColor("#FFE4E1"));}QStyledItemDelegate::paint(painter, option, index);}
};// 设置代理
tableWidget->setItemDelegate(new CustomDelegate());
4. 动态样式设置
// 修改特定行颜色
for(int row = 0; row < tableWidget->rowCount(); ++row) {QTableWidgetItem* item = tableWidget->item(row, 0);if(item) {item->setBackground(QColor("#E6F3FF"));item->setForeground(Qt::blue);}
}// 设置特定单元格样式
QTableWidgetItem* specialItem = new QTableWidgetItem("Important");
specialItem->setData(Qt::UserRole, "special");
tableWidget->setItem(0, 0, specialItem);// 在样式表中添加特殊样式
tableWidget->setStyleSheet("QTableWidgetItem[special=\"true\"] {"" background-color: #FFD700;"" font-weight: bold;""}"
);
5. 完整样式表示例
tableWidget->setStyleSheet(R"(QTableWidget {background-color: #FFFFFF;alternate-background-color: #F8F8F8;gridline-color: #E0E0E0;border: 1px solid #D0D0D0;font-size: 12px;}QHeaderView::section {background-color: #0078D4;color: white;padding: 4px;border: none;min-height: 28px;}QHeaderView::section:hover {background-color: #006CBC;}QHeaderView::section:pressed {background-color: #005AA3;}QTableWidget::item {border-bottom: 1px solid #E0E0E0;padding: 4px;}QTableWidget::item:selected {background-color: #B8D6FF;color: #000000;}QTableCornerButton::section {background-color: #0078D4;border: none;}QScrollBar:vertical {width: 12px;background: #F0F0F0;}QScrollBar::handle:vertical {background: #C0C0C0;min-height: 20px;}
)");
注意事项:
- 样式表优先级高于代码设置的属性
- 使用 alternate-background-color 需要先调用 setAlternatingRowColors(true)
- 复杂的样式建议使用 QSS 文件管理
- 对于性能敏感的场景,避免频繁修改样式表
- 可以使用 Qt Style Sheet Reference 查看所有可用属性
相关文章:
Qt的QTableWidget样式设置
在 Qt 中,可以通过样式表(QSS)为 QTableWidget 设置各种样式。以下是一些常见的样式设置示例: 1. 基本样式设置 tableWidget->setStyleSheet(// 表格整体样式"QTableWidget {"" background-color: #F0F0F0;…...
Moretl 增量文件采集工具
永久免费: <下载> <使用说明> 用途 定时全量或增量采集工控机,电脑文件或日志. 优势 开箱即用: 解压直接运行.不需额外下载.管理设备: 后台统一管理客户端.无人值守: 客户端自启动,自更新.稳定安全: 架构简单,兼容性好,通过授权控制访问. 架构 技术架构: Asp…...
dedecms 开放重定向漏洞(附脚本)(CVE-2024-57241)
免责申明: 本文所描述的漏洞及其复现步骤仅供网络安全研究与教育目的使用。任何人不得将本文提供的信息用于非法目的或未经授权的系统测试。作者不对任何由于使用本文信息而导致的直接或间接损害承担责任。如涉及侵权,请及时与我们联系,我们将尽快处理并删除相关内容。 0x0…...
深入理解 MyBatis 框架的核心对象:SqlSession
Mybatis框架中的SqlSession对象详解 引言 MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的工作。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息࿰…...
ndk 编译opencv(去除libandroid.so mediandk依赖)
简单的bash运行 需要关注的: OPENCV_EXTRA_MODULES_PATH : opencv contrib库BUILD_opencv_XXX :添加contrib库后默认是contrib库全部编译,用这个控制需要关闭的NDK的路径 export ANDROID_NDK/media/hello/data/3rd_party/25.2.…...
MySQL索引和其底层数据结构介绍
索引在项目中非常常见,它是一种帮助MySQL高效获取数据的数据结构,主要用来提高数据检索效率,降低数据库的I/O成本。同时,索引列可以对数据进行排序,降低数据排序的成本,也能减少CPU的消耗。就像是书的目录&…...
No module named ‘posepile.util‘
目录 No module named posepile.util 解决方法: No module named posepile.util 错误代码: import posepile.datasets3d as ds3d pip install git+https://github.com/isarandi/PosePile.git. And then, I executed the following command, " python -m metrabs_py…...
SQL布尔盲注、时间盲注
一、布尔盲注 布尔盲注(Boolean-based Blind SQL Injection)是一种SQL注入技术,用于在应用程序不直接显示数据库查询结果的情况下,通过构造特定的SQL查询并根据页面返回的不同结果来推测数据库中的信息。这种方法依赖于SQL查询的…...
RocketMQ与kafka如何解决消息丢失问题?
0 前言 消息丢失基本是分布式MQ中需要解决问题,消息丢失时保证数据可靠性的范畴。如何保证消息不丢失程序员面试中几乎不可避免的问题。本文主要说明RocketMQ和Kafka在解决消息丢失问题时,在生产者、Broker和消费者之间如何解决消息丢失问题。 1.Rocket…...
Uniapp 获取定位详解:从申请Key到实现定位功能
文章目录 前言一、申请定位所需的 Key1.1 注册高德开发者账号1.2 创建应用1.3 添加 Key 二、在 Uniapp 中配置定位功能2.1 引入高德地图 SDK2.2 获取定位权限 三、实现定位功能3.1 使用 uni.getLocation 获取位置3.2 处理定位失败的情况3.3 持续定位3.4 停止持续定位 四、总结 …...
【Vue3 入门到实战】14. telePort 和 Suspense组件
目录 编辑 1. telePort 2. 异步组件Suspense 3. 总结 1. telePort telePort 允许你将子组件渲染到 DOM 中的任何位置,而不仅仅是在其父组件的范围内。这对于模态框(modals)、提示框(tooltips)和其他需要脱…...
Golang的并发编程案例详解
Golang的并发编程案例详解 一、并发编程概述 并发编程是指程序中有多个独立的执行线索,并且这些线索在时间上是重叠的。在 Golang 中,并发是其核心特性之一,通过 goroutine 和 channel 来支持并发编程,使得程序可以更高效地利用计…...
IS-IS 泛洪机制 | LSP 处理流程
IS-IS 泛洪机制 作为一种链路状态路由协议,IS-IS 与 OSPF 类似,在学习和计算路由之前,区域中的路由器首先需交换链路状态信息,最终使所有路由器的链路状态数据库达到一致状态,这就如同每台路由器都拥有一张相同的网络…...
原型模式详解(Java)
原型模式(Prototype Pattern),作为一种极具代表性的创建型设计模式,其核心思想在于通过复制,亦即克隆现有的对象,来达成创建新对象的目的,而非依赖传统的构造函数途径。这一模式巧妙地基于现有对…...
内存条2R×4 2400和4R×4 2133的性能差异
内存条2R4 2400和4R4 2133的性能差异 2R4 2400 和 4R4 2133 是两种不同的内存条规格,主要在Rank数量和频率上有所不同,具体性能差异如下: 1. Rank数量 2R4:表示内存条有2个Rank,每个Rank有4个内存芯片。4R4ÿ…...
安装并配置 MySQL
MySQL 是世界上最流行的开源关系型数据库管理系统之一,因其高性能、可靠性和易用性而被广泛应用于各种规模的企业级应用中。本文将详细介绍如何在不同的操作系统上安装和配置 MySQL,帮助你快速搭建起一个功能完善的数据库环境。 选择适合你的安装方式 …...
常用的网络安全设备
一、 WAF 应用防火墙 范围:应用层防护软件 作用: 通过特征提取和分块检索技术进行模式匹配来达到过滤,分析,校验网络请求包的目的,在保证正常网络应用功能的同时,隔绝或者阻断无效或者非法的攻击请求 可…...
【蓝桥】线性DP--最快洗车时间
题目描述 解题思路 完整代码 举例 总结 基于 0/1 背包思想 解决 洗车时间分配问题,本质上是子集和问题【给定一个 正整数数组 nums 和一个目标值 target,判断是否可以从 nums 选择 若干个数(每个数最多选一次),使…...
Spring Boot比Spring多哪些注解?
Spring Boot 相比 Spring 多了很多自动化配置和简化开发的注解,主要包括以下几类: Spring Boot 启动与自动配置相关Spring Boot 配置相关Spring Boot Web 相关Spring Boot 测试相关Spring Boot 条件装配相关Spring Boot 监控与 Actuator 相关 1. Spring…...
springboot021校园周边美食探索及分享平台
版权声明 所有作品均为本人原创,提供参考学习使用,如需要源码数据库配套文档请移步 www.taobysj.com 搜索获取 技术实现 开发语言:Javavue。 框架:后端spingboot前端vue。 模式:B/S。 数据库:mysql。 开…...
城市级智慧停车平台建设思路:如何整合多个停车项目的数据
引言随着城市化进程的加速和机动车保有量的持续攀升,"停车难、停车乱"已经成为困扰各大城市的普遍性问题。根据公安部统计数据,截至2025年底,全国机动车保有量已突破4.5亿辆,而城市停车位缺口预计超过8000万个。与此同时…...
告别手动计算!用C#给ArcGIS做个插件,一键搞定城市风环境评估(附源码思路)
从零构建ArcGIS风环境评估插件:C#实战与架构设计 在建筑规划与城市设计中,风环境评估往往需要反复计算迎风面指数这类专业指标。传统工作流中,规划师需要手动处理风向数据、编写脚本批处理建筑网格,不仅效率低下,还容易…...
Swarmocracy:基于蜂群智能的分布式组织决策模拟实践
1. 项目概述:当开源项目遇上“蜂群民主”最近在开源社区里闲逛,发现一个挺有意思的项目,叫“Swarmocracy”。光看名字,就能嗅到一股混合了技术极客与组织社会学的味道——“Swarm”(蜂群)加上“-cracy”&am…...
Blender 3MF插件终极指南:3D打印工作流的完整解决方案
Blender 3MF插件终极指南:3D打印工作流的完整解决方案 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 你是否正在寻找一个简单高效的3D打印文件处理方案&…...
写论文软件哪个好?2026 实测:真文献 + 实证图表 + 全流程,虎贲等考 AI 才是毕业论文通关王
每到毕业季,“写论文软件哪个好” 就成为本硕生最纠结的问题。市面上工具看似繁多,却大多藏着隐患:通用 AI 编造文献、无实证支撑;小众工具功能碎片化、格式混乱;传统软件效率低、无智能辅助…… 选错软件,…...
Honey Select 2终极优化指南:HS2-HF Patch完整解决方案
Honey Select 2终极优化指南:HS2-HF Patch完整解决方案 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch HS2-HF Patch是专为《Honey Select 2》游戏设…...
告别‘堆已损坏’:深入理解malloc/new在Win32与x64平台下的内存管理差异
告别‘堆已损坏’:深入理解malloc/new在Win32与x64平台下的内存管理差异 在C/C开发中,内存管理一直是开发者需要面对的核心挑战之一。当项目从32位迁移到64位环境,或者升级Visual Studio版本时,许多团队都会遇到一个令人头疼的问题…...
别再傻傻分不清了!VB、VBS、VBA到底该用哪个?从Excel自动化到网页脚本的实战选择指南
VB、VBS与VBA实战指南:从Excel自动化到系统脚本的精准选择 每次打开Excel准备处理数据时,你是否纠结过该用VBA还是VBS?当需要批量重命名文件时,是否犹豫过VB和VBS哪个更高效?这三种看似相似的"VB系"语言&am…...
详解51单片机智能小车避障核心:超声波、漫反射与红外传感器的实战选型与调试
1. 智能小车避障传感器的核心选择 做智能小车最让人头疼的就是避障功能了。我当年第一次做51单片机小车时,光选传感器就折腾了好几个星期。市面上常见的避障传感器主要有三种:超声波模块、漫反射光电管和红外传感器。每种传感器都有自己的脾气ÿ…...
DeepSeek API Gateway安全防护体系(零信任网关落地指南)
更多请点击: https://intelliparadigm.com 第一章:DeepSeek API Gateway安全防护体系(零信任网关落地指南) DeepSeek API Gateway 作为面向大模型服务的统一入口,其安全架构严格遵循零信任原则——默认不信任任何网络…...
