当前位置: 首页 > news >正文

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

注意事项:

  1. 样式表优先级高于代码设置的属性
  2. 使用 alternate-background-color 需要先调用 setAlternatingRowColors(true)
  3. 复杂的样式建议使用 QSS 文件管理
  4. 对于性能敏感的场景,避免频繁修改样式表
  5. 可以使用 Qt Style Sheet Reference 查看所有可用属性

相关文章:

Qt的QTableWidget样式设置

在 Qt 中&#xff0c;可以通过样式表&#xff08;QSS&#xff09;为 QTableWidget 设置各种样式。以下是一些常见的样式设置示例&#xff1a; 1. 基本样式设置 tableWidget->setStyleSheet(// 表格整体样式"QTableWidget {"" background-color: #F0F0F0;…...

Moretl 增量文件采集工具

永久免费: <下载> <使用说明> 用途 定时全量或增量采集工控机,电脑文件或日志. 优势 开箱即用: 解压直接运行.不需额外下载.管理设备: 后台统一管理客户端.无人值守: 客户端自启动,自更新.稳定安全: 架构简单,兼容性好,通过授权控制访问. 架构 技术架构: Asp…...

dedecms 开放重定向漏洞(附脚本)(CVE-2024-57241)

免责申明: 本文所描述的漏洞及其复现步骤仅供网络安全研究与教育目的使用。任何人不得将本文提供的信息用于非法目的或未经授权的系统测试。作者不对任何由于使用本文信息而导致的直接或间接损害承担责任。如涉及侵权,请及时与我们联系,我们将尽快处理并删除相关内容。 0x0…...

深入理解 MyBatis 框架的核心对象:SqlSession

Mybatis框架中的SqlSession对象详解 引言 MyBatis 是一个优秀的持久层框架&#xff0c;它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的工作。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息&#xff0…...

ndk 编译opencv(去除libandroid.so mediandk依赖)

简单的bash运行 需要关注的&#xff1a; OPENCV_EXTRA_MODULES_PATH &#xff1a; opencv contrib库BUILD_opencv_XXX &#xff1a;添加contrib库后默认是contrib库全部编译&#xff0c;用这个控制需要关闭的NDK的路径 export ANDROID_NDK/media/hello/data/3rd_party/25.2.…...

MySQL索引和其底层数据结构介绍

索引在项目中非常常见&#xff0c;它是一种帮助MySQL高效获取数据的数据结构&#xff0c;主要用来提高数据检索效率&#xff0c;降低数据库的I/O成本。同时&#xff0c;索引列可以对数据进行排序&#xff0c;降低数据排序的成本&#xff0c;也能减少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布尔盲注、时间盲注

一、布尔盲注 布尔盲注&#xff08;Boolean-based Blind SQL Injection&#xff09;是一种SQL注入技术&#xff0c;用于在应用程序不直接显示数据库查询结果的情况下&#xff0c;通过构造特定的SQL查询并根据页面返回的不同结果来推测数据库中的信息。这种方法依赖于SQL查询的…...

RocketMQ与kafka如何解决消息丢失问题?

0 前言 消息丢失基本是分布式MQ中需要解决问题&#xff0c;消息丢失时保证数据可靠性的范畴。如何保证消息不丢失程序员面试中几乎不可避免的问题。本文主要说明RocketMQ和Kafka在解决消息丢失问题时&#xff0c;在生产者、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 中的任何位置&#xff0c;而不仅仅是在其父组件的范围内。这对于模态框&#xff08;modals&#xff09;、提示框&#xff08;tooltips&#xff09;和其他需要脱…...

Golang的并发编程案例详解

Golang的并发编程案例详解 一、并发编程概述 并发编程是指程序中有多个独立的执行线索&#xff0c;并且这些线索在时间上是重叠的。在 Golang 中&#xff0c;并发是其核心特性之一&#xff0c;通过 goroutine 和 channel 来支持并发编程&#xff0c;使得程序可以更高效地利用计…...

IS-IS 泛洪机制 | LSP 处理流程

IS-IS 泛洪机制 作为一种链路状态路由协议&#xff0c;IS-IS 与 OSPF 类似&#xff0c;在学习和计算路由之前&#xff0c;区域中的路由器首先需交换链路状态信息&#xff0c;最终使所有路由器的链路状态数据库达到一致状态&#xff0c;这就如同每台路由器都拥有一张相同的网络…...

原型模式详解(Java)

原型模式&#xff08;Prototype Pattern&#xff09;&#xff0c;作为一种极具代表性的创建型设计模式&#xff0c;其核心思想在于通过复制&#xff0c;亦即克隆现有的对象&#xff0c;来达成创建新对象的目的&#xff0c;而非依赖传统的构造函数途径。这一模式巧妙地基于现有对…...

内存条2R×4 2400和4R×4 2133的性能差异

内存条2R4 2400和4R4 2133的性能差异 2R4 2400 和 4R4 2133 是两种不同的内存条规格&#xff0c;主要在Rank数量和频率上有所不同&#xff0c;具体性能差异如下&#xff1a; 1. Rank数量 2R4&#xff1a;表示内存条有2个Rank&#xff0c;每个Rank有4个内存芯片。4R4&#xff…...

安装并配置 MySQL

MySQL 是世界上最流行的开源关系型数据库管理系统之一&#xff0c;因其高性能、可靠性和易用性而被广泛应用于各种规模的企业级应用中。本文将详细介绍如何在不同的操作系统上安装和配置 MySQL&#xff0c;帮助你快速搭建起一个功能完善的数据库环境。 选择适合你的安装方式 …...

常用的网络安全设备

一、 WAF 应用防火墙 范围&#xff1a;应用层防护软件 作用&#xff1a; 通过特征提取和分块检索技术进行模式匹配来达到过滤&#xff0c;分析&#xff0c;校验网络请求包的目的&#xff0c;在保证正常网络应用功能的同时&#xff0c;隔绝或者阻断无效或者非法的攻击请求 可…...

【蓝桥】线性DP--最快洗车时间

题目描述​ 解题思路 完整代码 举例 总结 基于 0/1 背包思想 解决 洗车时间分配问题&#xff0c;本质上是子集和问题【给定一个 正整数数组 nums 和一个目标值 target&#xff0c;判断是否可以从 nums 选择 若干个数&#xff08;每个数最多选一次&#xff09;&#xff0c;使…...

Spring Boot比Spring多哪些注解?

Spring Boot 相比 Spring 多了很多自动化配置和简化开发的注解&#xff0c;主要包括以下几类&#xff1a; Spring Boot 启动与自动配置相关Spring Boot 配置相关Spring Boot Web 相关Spring Boot 测试相关Spring Boot 条件装配相关Spring Boot 监控与 Actuator 相关 1. Spring…...

springboot021校园周边美食探索及分享平台

版权声明 所有作品均为本人原创&#xff0c;提供参考学习使用&#xff0c;如需要源码数据库配套文档请移步 www.taobysj.com 搜索获取 技术实现 开发语言&#xff1a;Javavue。 框架&#xff1a;后端spingboot前端vue。 模式&#xff1a;B/S。 数据库&#xff1a;mysql。 开…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室&#xff08;Algorithms, Machines, and People Lab&#xff09;开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目&#xff0c;8个月后成为Apache顶级项目&#xff0c;速度之快足见过人之处&…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享

文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的&#xff0c;根据Excel列的需求预估的工时直接打骨折&#xff0c;不要问我为什么&#xff0c;主要…...

Frozen-Flask :将 Flask 应用“冻结”为静态文件

Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是&#xff1a;将一个 Flask Web 应用生成成纯静态 HTML 文件&#xff0c;从而可以部署到静态网站托管服务上&#xff0c;如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

数据链路层的主要功能是什么

数据链路层&#xff08;OSI模型第2层&#xff09;的核心功能是在相邻网络节点&#xff08;如交换机、主机&#xff09;间提供可靠的数据帧传输服务&#xff0c;主要职责包括&#xff1a; &#x1f511; 核心功能详解&#xff1a; 帧封装与解封装 封装&#xff1a; 将网络层下发…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

C# SqlSugar:依赖注入与仓储模式实践

C# SqlSugar&#xff1a;依赖注入与仓储模式实践 在 C# 的应用开发中&#xff0c;数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护&#xff0c;许多开发者会选择成熟的 ORM&#xff08;对象关系映射&#xff09;框架&#xff0c;SqlSugar 就是其中备受…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南

&#x1f680; C extern 关键字深度解析&#xff1a;跨文件编程的终极指南 &#x1f4c5; 更新时间&#xff1a;2025年6月5日 &#x1f3f7;️ 标签&#xff1a;C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言&#x1f525;一、extern 是什么&#xff1f;&…...

动态 Web 开发技术入门篇

一、HTTP 协议核心 1.1 HTTP 基础 协议全称 &#xff1a;HyperText Transfer Protocol&#xff08;超文本传输协议&#xff09; 默认端口 &#xff1a;HTTP 使用 80 端口&#xff0c;HTTPS 使用 443 端口。 请求方法 &#xff1a; GET &#xff1a;用于获取资源&#xff0c;…...