Qt扫盲-QSS概述

news2024/10/5 21:15:04

QSS概述

  • 一、概述
  • 二、详细

一、概述

QSS 其实是Qt样式表,Qt样式表是Qt界面的一种强大的机制,除了通过继承QStyle已经可以实现的功能外,它还允许您自定义窗口组件的外观。Qt样式表的概念、术语和语法很大程度上受到HTML层叠样式表(CSS)的启发。功能和CSS的基本一样,大家应该也是有CSS 的基本基础,那写QSS就很容易的

注意:如果Qt样式表与设置窗口组件外观的函数在同一个窗口组件上使用,例如在QSS里面来设置字体,背景之类的和C++里面通过QWidget::setFont()或QTreeWidgetItem::setBackground()方法设置是一样的,如果设置发生了冲突,样式表将优先被使用

二、详细

样式表是一种文本语法,其实就是一串有语法的字符串。Qt能够解析这个QSS来设置到每个窗口的样式。可以使用QApplication::setStyleSheet()在整个应用程序上设置,也可以使用QWidget::setStyleSheet()在特定的小部件(及其子部件)上设置。如果在不同的级别上设置了几个样式表,Qt将从所有设置的样式表中派生有效的样式表。这就是所谓的级联。和CSS 的效果一样。

例如,下面的样式表指定所有QLineEdits都应该使用黄色作为背景色,所有 QCheckbox都应该使用红色作为文本颜色:

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

在定制窗口外观的时候,样式表比QPalette强大得多。例如,可能很容易将QPalette::Button角色设置为红色,以获得红色按钮。然而,QPalette这并不能保证对所有样式都有效,因为样式可能受到不同平台指南的限制,并且(在Windows和macOS系统上)也会受到本地主题引擎的限制。

样式表可以完成各种单独使用QPalette难以或不可能执行的自定义。如果你想要黄色背景的必填项,红色文本的按钮,或花里胡哨的复选框,样式表是答案。

样式表应用于当前小部件样式之上,这意味着您的应用程序将尽可能看起来是原生的,但任何样式表约束都将被考虑在内。与调色板不同,样式表完全设置所见即所得如果你将一个QPushButton的背景色设置为红色,你可以保证这个按钮在所有样式、所有平台上都有红色背景。

此外,Qt Designer还提供了样式表集成,可以很容易地在不同的单个样式中查看样式表的效果。一般是在调试的时候使用,调试好之后,我们一般会把这些样式集合再一个文件里面,这样就有一个基础的一套样式代码,以后换肤的话其实就可以直接来在这个基础上修改即可。

此外,样式表可以用来为应用程序提供独特的外观,而不必继承QStyle的子类这样的好处就是在于不用大量的继承QStyle然后重新定制,开发效率就能大大提高。例如,我们可以为单选按钮和复选框指定任意图像边框或者背景,使用这种技术,还可以实现通常需要子类化几个样式类的小定制,例如指定一个样式提示。下面描述的样式表示例定义了两个不同的样式表,您可以随意尝试和修改它们。
在这里插入图片描述

当一个样式表处于活动状态时,其实就是被使用中嘛,QWidget::style()返回的QStyle是一个包装器“样式表”样式,而不是特定于平台的样式。包装器样式确保任何活动样式表都可以在不同平台的外观保持一致,否则将绘图操作转发到底层的、特定于平台的样式(例如,Windows上的qwindowsviststyle,qfusionstyle等)。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

作为网络工程师,你知道什么是VLAN 跳跃攻击吗?

您听说过 VLAN 跳跃吗?这是黑客用来访问他们无权进入的网络的一种技术。在本文中,我们将探讨什么是 VLAN 跳跃、它的工作原理以及恶意行为者如何利用它。我们还将了解可用于执行 VLAN 跳跃的工具以及企业如何保护自己免受这些攻击。 一、什么是VLAN&…

商业智能BI工具评估指南

随着行业软件业务功能的不断完善,同行业软件日趋趋同,竞争更加白热化。同时,随着企业数字化转型的深入,企业自身对数据的使用需求越来越强烈。在用户的业务处理过程中,在业务软件内直接给用户提供数据分析结果具有更高…

认识python和python基础知识点

目前python版本分为python2和python3,主流都是使用Python3,因为python2到2020年开源社区就不在维护了,目前公司开发使用也基本都是python3.下面的演示基于python3 Python的3.0版本,常被称为Python 3000,或简称Py3k。相对于P…

基于Java springboot 疫情在线网课管理系统

🍅 作者主页 超级帅帅吴 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 文章目录一、前言介绍1.1 背景及意义1.2 系统运行环境二、系统设计2.1系统架构设计2.2角色功能图2.3登录时序图设计三、…

文件系统的认识

文件系统磁盘磁盘的物理结构磁盘的存储结构磁盘的逻辑抽象结构对磁盘组进行管理创建和删除文件时,os做了什么?创建一个文件时,os做了什么?删除一个文件,os做了什么?制作软硬链接软连接和硬链接区别制作静、…

Vue 使用过程中的问题总结(npm Nodejs Vue Vue-cli)

目录 关系图示 vue和webpack 的关系 Node.js npm package.json 有什么作用? Vue2 和 Vue3的区别 Vue-cli的版本区别 Vue在VsCode中的常见配置 Vuter Live server Prettier vscode vue 自动格式化 Vue.js devtools 常见报错 Vue 报错error:0308010C:di…

数学建模学习笔记-算法(线性规划模型)-下(例题运用)

目录 1.线性规划的基本公式 例题: ​编辑​编辑 1.符号 2.基本假设 3.模型的分析与建立 那么可以得出目标函数是 约束条件是 一.固定风险水平,优化收益 二.固定盈利水平,极小化风险 三.设置一个投资偏好系数S 语法解析 代码 输出结…

CET6 历年真题原词复现 核心词汇 做题技巧 听力拿分技巧汇总(这篇文章是英语四六级考试最后的版本,谢谢大家一路陪伴)

话不多说直接进入 这次是最后一次 也是最用心的一次关于CET6的整理,CET4很简单,我认为没有必要去整理或者帮助各位同学,cet4只是cet6的前置任务罢了,但要是你说你考完cet4就收手了,不考了,不考6级了。我只…

(十一) Docker network

Docker network一、概述1.1、简介1.2、常用基本命令1.2、作用二、网络模式2.1、四种模式介绍2.2、容器实例内默认网络IP生产规则三、模式说明1、bridge2、host3、none4、container5、自定义网络1、概念2、没有自定义网络时3、自定义网络4、Link5、自定义bridge网络与默认bridge…

寒假每日一题W2D1——选数异或

题目描述 给定一个长度为 n 的数列 A1,A2,⋅⋅⋅,An 和一个非负整数 x,给定 m 次查询,每次询问能否从某个区间 [l,r] 中选择两个数使得他们的异或等于 x。 输入输出格式及数据范围 输入输出样例 思路 ①对于两个数的异或值为x,可以化简为&…

RHCE第二天之chrony服务部署详解

文章目录一、chrony服务器介绍二、安装与配置三、chrony服务部署四、chronyc 的常见命令五、chronyc sources 输出结果解析一、chrony服务器介绍 ①Chrony是一个开源自由的网络时间协议 NTP 的客户端和服务器软软件。它能让计算机保持系统时钟与时钟服务器(NTP&…

谈谈如何在简历筛选中尽可能 “存活下来“, 如何在面试过程中 “游刃有余“

本文只是个人学习总结出来的技巧, 仅供参考 如果有不认同的地方, 也不必太较真, 因人而异 目录 1. 为什么要做简历 1.2 好简历与差简历的区别 2. 如何做一份好的简历 2.1 知己知彼 2.2 构思内容 2.3 模板的选择 2.4 填充内容 2.5 不断的更新迭代 2.6 其他注意事项 3…

Wondershare Recovery - 万兴数据恢复专家,恢复你 Mac 上的重要文件

Wondershare Recovery - 万兴数据恢复专家,恢复你 Mac 上的重要文件 Wondershare Recoverit 是恢复被删除文件最有效的软件之一。计算机用户面临的一个主要问题是失去机密信息。我们可能是误删除了数据和文件,或者可能是由于病毒袭击、操作系统故障或硬盘…

LaoCat带你认识容器与镜像(二【二章】)

系列二章二小节,发现概念性的知识看得人并不多,csdn的一篇解决问题的博文,却涨粉近400,有点意思~ 本章内容 操作Docker容器 本文实操全部基于Ubuntu 20.04 同样,容器也是Docker重要的核心成员之一,Docker容…

如何与沃尔格林Walgreens建立EDI连接?

沃尔格林Walgreens从1901年芝加哥一个家庭作坊式的小店开始,经历了百年沧桑,如今已经拥有4000多家连锁药店,在自己100多年的发展历史中年年赢利,创造了连续100多年的赢利神话。 与沃尔格林Walgreens建立合作,一个重要环…

C++:函数指针进阶(三):Lambda函数详解(二)

一:Lambda表达式概述 Lambda表达式是现代C在C11和更高版本中的一个新语法糖,在C11,C14,C17和C20中Lambda表达的内容还在不断更新。Lambda表达式(也称为lambda函数)是在调用或作为函数参数传递的位置处定义…

记自己开发的淘宝客优惠券

目录 1.首页 1.1详情 1.2口令 1.3分类 1.4搜索 1.5个人中心 2.API开发教程 2.1什么是淘宝客 组成模式 2.2API申请 2.3SDK下载 2.3后台管理 闲暇时间浏览网站时,看到有关淘宝优惠券推广的文章,就想着能不能自己也做一个微信小程序。 但是&…

论文投稿指南——中文核心期刊推荐(化学 2)

【前言】 🚀 想发论文怎么办?手把手教你论文如何投稿!那么,首先要搞懂投稿目标——论文期刊 🎄 在期刊论文的分布中,存在一种普遍现象:即对于某一特定的学科或专业来说,少数期刊所含…

Java里一个线程调用了Thread.interrupt()到底意味着什么?

interrupted()是Java提供的一种中断机制,要把中断搞清楚,还是得先系统性了解下什么是中断机制。 什么是中断? 在Java中没有办法立即停止一条线程,然而停止线程却显得尤为重要,如取消一个耗时操作。因此,Ja…

zig语言代替C语言进行裸机开发的尝试-2023年笔记

接触rust的时候,无意中认识了zig,目前版本是zig 0.10.0,还没有正式的1.0版本。 初步使用的感受: 1). 用zig写出的代码更防崩,不会像C那样出现很多内存非法访问的情况 (比如这些情形:栈保护、整数溢出、…