关于QSS要注意的坑。

  • qss源自css,相当于css的一个子集,主要支持的是css2标准,很多网上的css3的标准的写法在qss这里是不生效的,所以不要大惊小怪。
  • qss也不是完全支持所有的css2,比如text-align官方文档就有说明,只支持 QPushButton and QProgressBar,务必看清楚。
  • 有时候偷懒直接来一句 *{xxx},你会发现大部分是应用了,也有小部分或者极个别没有应用,你可能需要在对应的窗体中 this->setStyleSheet() 来设置。
  • qss的执行是有优先级的,如果没有指定父对象,则对所有的应用,比如在窗体widget中 {color:#ff0000;} 这样会对widget以及widget的所有子对象应用该样式,这种问题各大群每周都有人问,你会发现各种奇奇怪怪的异样不正常,怎么办呢,你需要指定类名或者对象名,比如 #widget{color:#ff0000;} 这样就只会对widget对象应用该样式,另一种写法 QWidget#widget{color:#ff0000;},只想对窗体本身而不是子控件按钮标签等 .QWidget{color:#ff0000;} ,具体详细规则参见官方说明。
  • qss整体来说还是可以的,解析速度性能在Qt5高版本后期比Qt4好很多,尤其是修复了不少qss中的解析绘制BUG。尽管有这样那样的BUG,怀着包容的心对待它。
  • qss官方学习地址1:http://47.100.39.100/qtwidgets/stylesheet-reference.html
  • qss官方学习地址2:http://47.100.39.100/qtwidgets/stylesheet-examples.html

Qt样式表有多种运行机制,主要是考虑到各种需求场景,继承自QWidget的类和qApp类都支持setStyleSheet方法,还可以统一将样式表放在文件,或者将样式文件加入到资源文件。

  • 斗气:qss内容写得到处都是,哪里需要就写在哪里,各种控件调用 setStyleSheet方法传入样式表内容,或者直接对应控件鼠标右键弹出菜单选择改变样式表填入内容;
  • 斗者:qss内容放在文件,读取文件内容设置样式表,程序发布的时候带上qss文件;
  • 斗师:qss文件作为资源文件放到qrc文件,直接编译到可执行文件中,防止篡改;
  • 斗灵:在qss文件中自定义一些标志充当变量使用,读取以后替换对应的变量为颜色值,类似动态换肤;
  • 斗王:放在文件容易被篡改,集成到可执行文件不够灵活,一旦样式表更新需要重新编译文件,如何做到既能只更新样式表文件,又不需要重新编译可执行文件,又能防止被篡改:采用rcc命令将资源文件编译生成二进制,只需要替换该二进制文件即可;
  • 斗皇:继承qstyle类自己实现完成所有样式接口,统一整体风格,大名鼎鼎的UOS系统默认规则就是如此,不允许用样式表,全部painter绘制;

关于Qt中的qss样式表需要注意的坑的更多相关文章

  1. Qt中QSlider的样式表设置

    转自: https://blog.csdn.net/tax10240809163com/article/details/50899023 //首先是设置主体QSlider{border-color: ...

  2. Qt系统对话框中文化及应用程序实现重启及使用QSS样式表文件及使用程序启动界面

    一.应用程序中文化 1).Qt安装目录下有一个目录translations/,在此目录下有qt_zh_CN.ts和 qt_zh_CN.qm把它们拷贝到你的工程目录下. 2).在main函数加入下列代码 ...

  3. GUI学习之三十四——QSS样式表

    今天是一个大课题:QSS样式表 一.概念: QSS是Qt Style Sheet——Qt样式表,是用来自定义控件外观的一种机制;可以把他类比成CSS,但是不及其功能强大. 二.使用: 我们做一个模板, ...

  4. 在网页中插入CSS样式表的几种方法

    1. 链入外部样式表 链入外部样式表是把样式表保存为一个样式表文件,然后在页面中用<link>标记链接到这个样式表文件,这个<link>标记必须放到页面的<head> ...

  5. QT源码剖析之QSS样式表

    1. "QApplication::setStyleSheet()"设置样式表: 1. 创建新的样式表. 2. 设置新的样式. void QApplication::setStyl ...

  6. PyQt(Python+Qt)学习随笔:Qt Designer中部件的样式表styleSheet属性

    styleSheet属性是定义部件外观的属性样式表,在Qt中styleSheet样式表是类似于html的css样式一样的方法,只是时专门为Qt中的部件开发的.styleSheet的定义语法也是类似CS ...

  7. QSS 样式表 (一)

    在开发应用程序时,往往对界面的美观有一定的要求.Qt 引入了 QSS 机制,使得界面的美化工作变的轻轻松松.嗯,QSS听着有点耳熟.是的,QSS的语法和CSS类似.在此做些总结. 先来看一个简单的例子 ...

  8. Qt中插入html样式

    Qt中引入html调节样式 HTML 设置行间距字体高度和颜色 <html><head/><body><p style=\"height:16px; ...

  9. QSS样式表之PS黑色风格+白色风格+淡蓝色风格(开源)

    用QUI皮肤生成器制作皮肤,基本上不超过一分钟就可以生成一套自己想要的皮肤,只要设置八种颜色即可.本人非常喜欢这套黑色风格样式皮肤,特意分享出来,下载地址:https://download.csdn. ...

  10. Qss 样式表的尝试

    QLineEdit{ border:1px solid #137eb6; padding:2px; background-color:#F5F5F5; } QToolTip{ border:1px s ...

随机推荐

  1. 什么是SQL注入并解决

    ' or ' 1 ' = ' 1 原理:通过违规的字符串改变原来的SQL语句 :[将敏感字符进行转义] // 包名 package com.zhulx.JDBC; // 导入实例类 import co ...

  2. 15 Transformer 框架概述

    博客配套视频链接: https://space.bilibili.com/383551518?spm_id_from=333.1007.0.0 b 站直接看 配套 github 链接:https:// ...

  3. VuePress安装

    linux 下预构建二进制文件安装 Nodejs Nodejs预购建二级制文件下载地址 安装 Nodejs 和 npm # 解压 tar xvf node-v20.15.1-linux-x64.tar ...

  4. 01_GoLand debug时出现Connected并且程序卡住的问题

    01_GoLand debug时出现Connected并且程序卡住的问题 环境:win10.go version go1.19.4 windows/amd64.GoLand 2020.3.5 x64 ...

  5. 第一个selenium测试

    一.环境搭建 使用语言:python 1.python解释器:python.exe 版本 3.11.4 下载地址:[https://www.python.org/downloads/release/p ...

  6. 强化学习环境gym/gymnasium下的atari环境的v0、v4、v5的说明

    声明: 本文是最新版gym-0.26.2下Atari环境的安装以及环境版本v0,v4,v5的说明的部分更新和汇总,可以看作是更新和延续版本. 由于gym已经由openai公司独立出来,虽然开发团队和投 ...

  7. OpenCV开发笔记(八十二):两图拼接使用渐进色蒙版场景过渡缝隙

    前言   对于图像拼接,前面探讨了通过基于Stitcher进行拼接过渡和基于特征点进行拼接过渡,这2个过渡的方式是摄像头拍摄角度和方向不应差距太大.  对于特定的场景,本身摄像头拍摄角度差距较大,拉伸 ...

  8. 使用NTP,该如何同步时间?一文详解!

    ​ 一.NTP通信概述 很多场景中,由于业务需要,模块需要保持正确的系统时钟,才能正常工作.但是模块上电后的初试时间戳是946713600(即2000/01/01,16:00:00),所以同步时钟成为 ...

  9. HTTP相关返回值异常如何解决(上篇)

    ​ 今天我们讲讲HTTP相关返回值异常如何解决(实例持续更新中) 一.HTTP介绍 HTTP(超文本传输协议,Hypertext Transfer Protocol)是用于在网络上进行数据交换的应用层 ...

  10. Nuxt.js 应用中的 vite:serverCreated 事件钩子

    title: Nuxt.js 应用中的 vite:serverCreated 事件钩子 date: 2024/11/18 updated: 2024/11/18 author: cmdragon ex ...