Qt扫盲-QSS概述

2023-11-16

一、概述

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等)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Qt扫盲-QSS概述 的相关文章

  • QT 中 QPushButton 的qss样式background-color无效

    在设计界面为QPushButton设置了样式 或者在QPushButton的上层对象的样式处设置了按钮的样式 解决方法 xff1a 删除设计界面设置的按钮样式 xff0c 可能在不同层 xff0c widget xff0c widget 3
  • C++Qt开发——QSS样式表

    1 样式表 Qt样式表 style sheet 是用于定制用户界面的强有力的机制 xff0c 其概念 术语是收到HTML中的级联样式表 Cascading Style Sheets CCS 启发而来 xff0c 只是Qt样式表是用用于窗体界
  • QT 九宫格绘图(QSS方式)

    什么是九宫格方式绘图 xff1f 顾名思义 xff0c 就是把一个方块分割成 9 个部分 xff0c 如图所示 xff1a 九宫格绘图的原理就是把背景图分割成 9 个部分 xff0c 绘制时 xff1a 四个角 xff08 1 3 7 9
  • QSS之QPushButton 详细介绍

    官方参考资料 span class hljs tag QPushButton span span class hljs rules span class hljs comment 前景色 span span class hljs rule
  • Qt扫盲-QMouseEvent 鼠标事件

    QMouseEvent 鼠标事件理论 一 概述 二 鼠标事件的传递 三 组合修饰符 四 鼠标坐标位置 五 使用方式 一 概述 当在QWidget窗口内的鼠标按钮被按下或释放 或者鼠标光标被移动时 就会发生鼠标事件 鼠标按下释放没有什么特殊的
  • Qt扩展-KDDockWidgets 简介及配置

    Qt扩展 KDDockWidgets 简介及配置 一 概述 二 编译 KDDockWidgets 库 1 Cmake Gui 中选择源文件和编译后的路径 2 点击Config 配置好编译器 3 点击Generate 4 在存放编译的文件夹输
  • Qt QComboBox QSS样式设置

    QComboBox 样式表可谓太丰富了 研究了一阵 总结出的记录 QComboBox整体样式 未下拉时 QComboBox的样式 QComboBox border radius 3px padding 1px 18px 1px 3px ba
  • pyside6中QcommandLinkButton 控件qss有哪些用法和案例

    QCommandLinkButton 是 Qt GUI 框架中的一个功能按钮类 而 Qt Style Sheets QSS 提供了一种强大的方式来自定义 Qt 控件的外观 以下是 QCommandLinkButton 常用的 QSS 用法
  • Qss之QTabWidget美化

    直接上代码吧 QTabWidget QTabWidget pane border none QTabWidget tab bar left 5px QTabBar tab background gray border 2px solid C
  • 分享一个经典黑qss风格样式

    Shared QStackedWidget QLabel QPushButton QRadioButton QCheckBox QGroupBox QStatusBar QToolButton QComboBox QDialog backg
  • Qt 样式表之QSS

    前言 最近想给程序做个换皮肤的功能 于是想起了用 QSS QSS 这个东西也算是老古董了 博主刚工作那会就有接触过 但是没有深入去了解 趁着这一次机会来学习一下 网上翻阅了一些资料 结合 Qt 的官方文档 博主把 QSS 的相关知识点整理了
  • Qt扫盲-QWidget理论使用总结

    QWidget理论使用总结 一 概述 二 顶层 控件 和子 控件 三 复合控件 四 自定义控件和绘制 五 大小提示和大小策略 六 事件 七 一组函数和属性 八 QWidget样式表 九 透明度和双缓冲 十 创建半透明窗口 一 概述 widg
  • Qt扫盲-QVariant理论使用总结

    Qt扫盲 QVariant理论使用总结 一 概述 二 使用用例 三 关于GUI类型的说明 四 连续使用canConvert 和convert 一 概述 QVariant 是一个用来存放变体数据的工具类 因为c 禁止 union 包含具有非默
  • Qt样式表 基础篇(2)

    这部分的内容直接来自Qt官方文档 原滋原味 不做过多介绍和翻译 因为 实在是非常完备了 Qt 帮助文档 目录 Qt Style Sheets Reference 样式表相关资料 List of Stylable Widgets 可设置样式的
  • Qt中的QSS Subcontrol

    QSS Subcontrol 普通的 QSS 和 CSS 没什么区别 难度不大 但除此之外 想要使用好 QSS 还必须得掌握好 subcontrol 这个在 CSS 里没有 是 Qt 独有的 什么是 subcontrol 一个复杂的 wid
  • Qt扫盲-Qt Paint System 概述

    Qt Paint System 概述 一 概述 二 绘图设备和后端 1 Widget 2 Image 3 Pixmap 4 OpenGL绘制设备 5 Picture 6 自定义绘制后端 三 绘图与填充 1 Drawing 2 填充 Fill
  • Qt扫盲-QSS概述

    QSS概述 一 概述 二 详细 一 概述 QSS 其实是Qt样式表 Qt样式表是Qt界面的一种强大的机制 除了通过继承QStyle已经可以实现的功能外 它还允许您自定义窗口组件的外观 Qt样式表的概念 术语和语法很大程度上受到HTML层叠样
  • QT中按钮格式QSS代码

    鼠标正常时按钮效果 QPushButton myButton normal 鼠标正常时的效果 color 000000 background color rgb 40 85 20 改变背景色 border style inset 改变边框风
  • QT 怎么导入qss文件?

    方式一 比较常见的方法 QFile file qss psblack css if file open QFile ReadOnly QString qss QLatin1String file readAll qApp gt setSty
  • Qt之QSS中替代background-position的方法。

    学过css的朋友 应该都多少了解一些雪碧图相关的知识 雪碧图 用的就是background position来确定选取的素材位置 比如 素材中每张扑克的宽高分别为49px 66px 如果我要选用红桃8 我就会在css中写 backgroun

随机推荐

  • 基于Arduino的音乐动感节奏灯

    1 音乐动感节奏灯是个什么东西 前段时间听音乐觉得无聊 便想着音乐光听也没意思啊 能不能 看见 音乐呢 于是谷歌了一番 发现还真有人做了将音乐可视化的东西 那就是音乐节奏灯 说的简单点就是LED灯光颜色亮度等随着音乐的节奏而发生变化 看了下
  • 最新机器人工程专业毕设选题推荐

    文章目录 1前言 2 如何选题 3 机器人工程 毕设 选题推荐 4 最后 1前言 近期不少学弟学妹询问学长关于机器人工程专业工程专业相关的毕设选题 学长特意写下这篇文章以作回应 以下是学长亲手整理相关的毕业设计选题 都是经过学长精心审核的题
  • Python-声明变量

    Python如何声明变量 在 Python 中 定义变量非常简单 只需要为变量赋一个值即可自动创建该变量 并推断出变量的数据类型 变量名可以是任意字母 数字或下划线组成 但是不能以数字开头 例如 定义名为 name 的变量 并将字符串 To
  • event类型 php,深入解析PHP的Laravel框架中的event事件操作

    有时候当我们单纯的看 Laravel 手册的时候会有一些疑惑 比如说系统服务下的授权和事件 这些功能服务的应用场景是什么 其实如果没有经历过一定的开发经验有这些疑惑是很正常的事情 但是当我们在工作中多加思考会发现有时候这些服务其实我们一直都
  • 服务器的协议端口在哪里设置,服务器的远程端口号在哪里设置

    服务器的远程端口号在哪里设置 内容精选 换一换 Linux云服务器一般采用SSH连接方式 使用密钥对进行安全地无密码访问 但是SSH连接一般都是字符界面 有时我们需要使用图形界面进行一些复杂操作 本文以Ubuntu 18 04操作系统为例
  • 飞旭体质健康测试云平台学生体质测试管理系统

    飞旭体测数据管理云平台是由体测设备 微信小程序和云平台构成 用户通过设备测试后 数据传输至云端 由云平台对数据进行针对性的统计分析 平台功能包括管理员分级管理 学生体质测试 学生体质测试成绩查询 测试数据管理统计分析 数据上报管理等内容 具
  • 15 周带你学好大一C语言!最详细C语言学习路线

    要学习 C 语言的读者抓紧时间看一下 我按照C语言学习视频的目录整理了一条以 周为单位时间 的学习路线 希望在开学后能按照这个进度去学习一遍 有要学习 C 语言的读者也可以参照 可能有些知识学习起来比较困难 比如说二进制这种涉及到底层方面的
  • iperf linux移植

    参考链接 1 iperf的git地址 windows版下载地址 git clone https github com esnet iperf git 2 下载到ubuntu上 3 找到交叉工具包的位置 opt arm ca9 linux g
  • 绘制复杂的层次的原理图

    一 绘制总体的区域块模块 1 新建一个PCB项目 在new中的project选择PCB 2 在项目中新建一个sheet文件 schemetic 然后找到place中的sheet Symbol Actions 3 修改每一个绿块的名称和文件名
  • 阻止移动端 touchmove 与 scroll 事件冲突

    在移动端开发过程中 如果要实现一个元素或按钮的拖动定位 会出现很多坑 例如 元素上下移动过程中 会触发 body 的 scroll 事件 导致整体的位置偏移 这时就需要 阻止移动端 touchmove 与 scroll 事件冲突 一 解决思
  • 【致敬未来的攻城狮计划】--RA2E1 开发板测评(3)按键输入

    前言 1 首先感谢 李肯前辈的活动 从而申请到了RA2L1开发板的测评 2 本文主要介绍按键输入的内容 3 学习本文需要准备的前提 致敬未来的攻城狮计划 RA2E1 开发板测评 1 keil环境配置 致敬未来的攻城狮计划 RA2L1 开发板
  • 自助Linux之问题诊断工具strace

    引言 Oops 系统挂死了 Oops 程序崩溃了 Oops 命令执行报错 对于维护人员来说 这样的悲剧每天都在上演 理想情况下 系统或应用程序的错误日志提供了足够全面的信息 通过查看相关日志 维护人员就能很快地定位出问题发生的原因 但现实情
  • 去除li前面小点点

    li list style type none
  • 3. 性能测试之目标评估

    文章目录 前言 一 模型1 根据日活计算目标QPS 1 原则 2 事例 二 模型2 根据压测数据评估最大支撑并发 1 原则 2 事例 3 备注 三 模型3 根据压测数据评估服务器资源 1 策略 2 备注 四 模型4 评估用户并发或峰值并发
  • Excel·VBA螺旋数组函数

    目录 1 由外到内顺时针的螺旋数组 实现方法1 代码思路 螺旋数组函数代码 举例 实现方法2 代码思路 螺旋数组函数代码 2 由外到内逆时针的螺旋数组 举例 数字1 12从左上角顺时针依次输出的即为螺旋数组 如下图 1 由外到内顺时针的螺旋
  • 网络编程3——TCP Socket实现的客户端服务器通信完整代码(详细注释帮你快速理解)

    文章目录 前言 一 理论准备 Socket套接字是什么 TCP协议的特点 二 TCP 流套接字提供的API ServerSocket API Socket API 三 代码实现请求响应式 客户端服务器 服务器 客户端 疑惑解答 为什么服务器
  • 获取Android设备唯一标识码

    概述 有时需要对用户设备进行标识 所以希望能够得到一个稳定可靠并且唯一的识别码 虽然Android系统中提供了这样设备识别码 但是由于Android系统版本 厂商定制系统中的Bug等限制 稳定性和唯一性并不理想 而通过其他硬件信息标识也因为
  • Simulink代码生成(二)——代码生成时模型的配置方法及操作流程

    Simulink代码生成 二 代码生成时模型的配置方法及操作流程 文章目录 Simulink代码生成 二 代码生成时模型的配置方法及操作流程 一 模型 二 代码生成设置 1 步长选择 2 系统目标文件设置 3 生成代码打开测试报告 4 保存
  • 为什么如今这么多人讨论网络安全?

    网络安全如今备受讨论 跟各种经济政治的关系是分不开的 并且变得更加复杂多变 网络安全的发展前景更可观 很多安全企业也开始积极寻求各类网络风险的防范方案和数据隐私保护技术 当今世界形势的变化 以及各种因素的不断影响 全球网络安全问题再不断提升
  • Qt扫盲-QSS概述

    QSS概述 一 概述 二 详细 一 概述 QSS 其实是Qt样式表 Qt样式表是Qt界面的一种强大的机制 除了通过继承QStyle已经可以实现的功能外 它还允许您自定义窗口组件的外观 Qt样式表的概念 术语和语法很大程度上受到HTML层叠样