Qt Style Sheets-入门

Qt 样式表是一种强大的机制,允许您自定义小部件的外观,这是在通过子类化QStyle已经可行的基础上的补充。Qt 样式表的概念、术语和语法在很大程度上受到 HTML级联样式表 (CSS)的启发,但适用于小部件的世界。

概述

        样式表是文本规范,可以使用QApplication::setStyleSheet() 在整个应用程序上设置,或者使用QWidget::setStyleSheet() 在特定的小部件(及其子部件)上设置。如果在不同级别设置了多个样式表,Qt 会从所有已设置的样式表中派生有效的样式表。这称为层叠。

        例如,以下样式表指定所有QLineEdit应使用黄色作为其背景颜色,并且所有QCheckBox应使用红色作为文本颜色:

QLineEdit { background: yellow }
QCheckBox { color: red }

        对于这种定制,样式表比QPalette强大得多。例如,可能会很想将QPalette::Button角色设置为红色以获得红色的QPushButton。然而,这并不能保证在所有样式中都有效,因为样式作者受到不同平台的指南以及(在 Windows XP 和 macOS 上)本地主题引擎的限制。

         样式表允许您进行各种仅使用QPalette难以或无法进行的自定义。如果您希望必填字段具有黄色背景、潜在破坏性的按钮具有红色文本,或者想要精美的复选框,样式表就是答案。

        样式表应用于当前小部件样式之上,这意味着您的应用程序将尽可能看起来具有原生风格,但任何样式表约束都将被考虑在内。与调色板调整不同,样式表提供保证:如果您将QPushButton的背景颜色设置为红色,您可以确信该按钮在所有样式、所有平台上都将具有红色背景。此外,Qt 设计器提供样式表集成,使得在不同小部件样式中查看样式表的效果变得容易。

        此外,样式表可用于为您的应用程序提供独特的外观和感觉,而无需对QStyle进行子类化。例如,您可以为单选按钮和复选框指定任意图像以使它们脱颖而出。使用此技术,您还可以实现通常需要对多个样式类进行子类化的较小自定义,例如指定样式提示。下面描绘的样式表示例定义了两个独特的样式表,您可以随意尝试和修改。 

在 Windows XP 上运行的 Coffee 主题

 在 Windows XP 上运行的 Pagefold 主题

在 Ubuntu Linux 上运行的 Coffee 主题

在 macOS 上运行的 Pagefold 主题

当样式表处于活动状态时,由QWidget::style()返回的QStyle是一个包装的“样式表”样式,而不是特定于平台的样式。该包装样式确保任何活动的样式表都得到遵循,否则将绘图操作转发到基础的、特定于平台的样式(例如,在 Windows XP 上的 QWindowsXPStyle)。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

手机数据恢复技巧:适用于 Android 的恢复应用程序

发现自己意外删除了 Android 设备上的照片,这让人很痛苦。这些照片可能是值得纪念的文件,会让您想起一些难忘的回忆。删除它们后,您知道如何恢复它们。在这种情况下,您需要使用 Android 的照片恢复应用程序。 无论您需要直接从 A…

【Python基础教程】制作一个宿舍管理系统,数据库宿舍管理系统代码!(完整版,附源码)

今天我们一起学习一个新的小案例——宿舍管理系统。主要涉及列表、字典的初始化、增加、删除、修改和查询操作,以及函数的定义和调用。 一、需求: 有操作指引界面,显示操作号 能添加一个新的入住学生信息,包括学生姓名、宿舍号床…

蓝桥杯14小白月赛题解

直接输出pi/ti,for遍历 #include <iostream> using namespace std; #define int long long int a,b,c ; double t1.00; signed main() {cin>>a;int an0;for(int i1;i<a;i){cin>>b>>c;if(t>c*1.00/b){tc*1.00/b;ani;} }cout<<an<<e…

搭建hadoop+spark完全分布式集群环境

目录 一、集群规划 二、更改主机名 三、建立主机名和ip的映射 四、关闭防火墙(master,slave1,slave2) 五、配置ssh免密码登录 六、安装JDK 七、hadoop之hdfs安装与配置 1)解压Hadoop 2)修改hadoop-env.sh 3)修改 core-site.xml 4)修改hdfs-site.xml 5) 修改s…

使用GPT3.5,LangChain,FAISS和python构建一个本地知识库

引言 介绍本地知识库的概念和用途 在现代信息时代&#xff0c;我们面临着海量的数据和信息&#xff0c;如何有效地管理和利用这些信息成为一项重要的任务。本地知识库是一种基于本地存储的知识管理系统&#xff0c;旨在帮助用户收集、组织和检索大量的知识和信息。它允许用户…

深度学习驱动智能超材料设计与应用

在深度学习与超材料融合的背景下&#xff0c;不仅提高了设计的效率和质量&#xff0c;还为实现定制化和精准化的治疗提供了可能&#xff0c;展现了在材料科学领域的巨大潜力。深度学习可以帮助实现超材料结构参数的优化、电磁响应的预测、拓扑结构的自动设计、相位的预测及结构…

软件测试——非功能测试

工作职责&#xff1a; 1.负责产品系统测试&#xff0c;包括功能测试、性能测试、稳定性测试、用户场景测试、可靠性测试等。 2.负责测试相关文档的编写&#xff0c;包括测试计划、测试用例、测试报告等。 3.负责自动化测试框架、用例的维护。 岗位要求&#xff1a; 1.熟练…

数据可视化在智慧医疗中的重要应用

在现代智慧医疗的推动下&#xff0c;数据可视化技术正日益成为医疗领域的重要工具。通过将复杂的医疗数据转换为直观的图表和图形&#xff0c;数据可视化不仅提升了医疗服务的效率&#xff0c;还极大地改善了患者的就医体验。 在智慧医疗中&#xff0c;数据可视化首先在电子病历…

知识图谱和 LLM:利用Neo4j驾驭大型语言模型(探索真实用例)

这是关于 Neo4j 的 NaLLM 项目的一篇博客文章。这个项目是为了探索、开发和展示这些 LLM 与 Neo4j 结合的实际用途。 2023 年,ChatGPT 等大型语言模型 (LLM) 因其理解和生成类似人类的文本的能力而风靡全球。它们能够适应不同的对话环境、回答各种主题的问题,甚至模拟创意写…

实时系统Preempt RT与Xenomai之争!谁更主流,谁更实时

版权声明&#xff1a;本文主要内容基于“北京盟通科技有限公司”授权提供的文件&#xff0c;由“创龙科技”进行整理得出。感谢“盟通科技”的慷慨支持&#xff0c;让更多人了解Linux系统的“实时拓展”选择知识。 选择争论一直存在 大家知道EtherCAT是实时现场总线技术&…

Java中使用加密盐

0 前言 众所周知&#xff0c;密码肯定不能用明文存储。 之前一直使用MD5进行加密&#xff0c;现在才知道有彩虹表这回事。所以记录一下对应的处理方式&#xff1a;加密盐。 1 彩虹表 例如用MD5加密&#xff0c;随便没法破解&#xff0c;但是有些常用的字符被收集到彩虹表里…

OSU!题解(概率dp)

题目&#xff1a;OSU! - 洛谷 思路&#xff1a; 设E()表示截止到i所获得的分数&#xff1b; 对于到i点的每一个l&#xff0c;如果第i1点为1&#xff0c;那么会新增分数3*l^23*l1; 就有递推公式方程&#xff1a; E()E()p[i1]p*(3*l^23*l1);(p代表截止到i获得长度l的概率)&a…

关于mybatis中语法的错误记录

大家注意再写mybatis时候的逗号&#xff0c;虽然不起眼&#xff0c;但是会一直报错&#xff0c;最后一个字段不需要逗号&#xff0c;其余字段全部需要逗号。

【个人笔记】685. 冗余连接 II 的解释(并查集)

一棵树有n个点和n条边&#xff0c;返回一条能删除的边&#xff0c;使得剩下的图是有 n 个节点的有根树。 解释&#xff1a; 注意不冗余的有根树的特性&#xff01;**根节点入度为0&#xff0c;其余结点只有一个入度&#xff01;**所以冗余的两种情况如下&#xff1a; &#xff…

Vue3项目基于Axios封装request请求

在 Vue 3 的项目开发中&#xff0c;使用 Axios 进行 HTTP 请求是非常常见的作法&#xff0c;为了更方便开发者更高效的进行代码编写和项目的维护&#xff0c;可以通过再次封装 Axios 来实现。 在本文中&#xff0c;博主将详细指导你如何在自己的 Vue 3 项目中使用 Axios 二次封…

Vue学习---vue cli 项目创建

使用的编辑工具webStorm 创建例子: hello vue create hello 选择 vue3 进行创建 运行 npm run serve 测试访问&#xff1a;http://localhost:8080 改动内容重新编译&#xff1a; npm run build dist 目录就是编译后的可运行内容

客流统计系统优化景区服务流程,增强游客满意度

在当今旅游业蓬勃发展的时代&#xff0c;景区面临着越来越多的挑战和机遇。如何提供更优质、更高效的服务&#xff0c;满足游客日益增长的需求&#xff0c;成为了景区管理者们关注的焦点。客流统计系统作为一种创新的技术手段&#xff0c;正逐渐成为优化景区服务流程、增强游客…

windows 打包pyd文件

1.新建一个py文件&#xff0c;myunit.py&#xff0c;里面的代码是: class Adder: def __init__(self, a, b): self.a a self.b b def add(self): return self.a self.b 2.新建一个py文件&#xff0c;setup.py&#xff0c;里面的代码是: from setuptools import setup fro…

巧用通义灵码助力护网面试

前言 前几年护网还算是一个比较敏感的话题&#xff0c;但是随着近段时间的常态化开始&#xff0c;护网行动也是逐渐走进了大众的视野&#xff0c;成为了社会各界共同关注的安全盛事。本篇也是受通义灵码备战求职季活动的启发&#xff0c;结合近期要开始的护网行动&#xff0c…

持续集成06--Jenkins构建触发器

前言 在持续集成&#xff08;CI&#xff09;的实践中&#xff0c;构建触发器是自动化流程中不可或缺的一环。它决定了何时启动构建过程&#xff0c;从而确保代码变更能够及时地得到验证和反馈。Jenkins&#xff0c;作为业界领先的CI/CD工具&#xff0c;提供了多种构建触发器选项…