QT样式表StyleSheet(QSS)的使用与加载

本文详细介绍了QT中的StyleSheet(QSS)的使用,包括如何在设计师界面直接添加样式、通过程序设置样式。重点讲解了在设计师界面设置样式表的注意事项,如背景颜色生效条件,以及样式覆盖机制。此外,还展示了通过程序添加样式的方法,包括直接使用setStyleSheet函数和从qss文件加载样式。最后,提到了将qss文件作为资源打包进程序的方法。
摘要由CSDN通过智能技术生成

1、相关链接

官网的样式表链接:http://doc.qt.io/archives/qt-4.8/stylesheet.html

各种控件的样式:http://doc.qt.io/archives/qt-4.8/stylesheet-reference.html

QSS语法:http://www.w3school.com.cn/css/css_syntax.asp

使用样式表的3种方法:《Qt 之 样式表的使用——设置样式的方法 》https://blog.csdn.net/goforwardtostep/article/details/60884870

其实本质上就两种:1、在设计师界面上直接添加,2、用程序设置

2、在设计师界面上直接添加

举例,在设计师界面拖入一个QPushButton,右击这个按钮,选择改变样式表,就会弹出添加样式的窗口;

或者,左键选中这个按钮,在右侧的属性对话框中找到StyleSheet属性,点击…按钮也可打开样式表窗口,如下图所示:
在这里插入图片描述

在打开的编辑样式表窗口直接输入“样式语句”,点击应用apply即可实时看到样式的效果,如下图所示:
在这里插入图片描述编辑样式表这个窗口可以实时提示,我们输入的qss语句语法是否正确,如果正确会在左下角提示:有效样式表,当然,这个语法检查功能非常有限,只能检查语法的格式,例如是否缺少了大括号、是否漏了冒号、分号。

2.1 注意事项

1、这里有一点比较另类,设定背景颜色background-color时,必须要同时把设置一下边框属性:如边框圆角border-radius、边框粗细等,否则背景色无法生效。

2、如上图所示,样式表可以用大括号限定作用的控件类型,比如QPushButton{ },如果不用大括号限定控件类型,那么该控件的所有子控件都会显示为父控件的样式,最典型的例子,使用容器类控件时,

例如QGroupBox,我们不用QGroupBox{ }限定qss语句的作用范围,而是直接设置其样式,那么该容器中的任何子控件(按钮、单选框、label等)都会显示为QGroupBox的样式,如下图所示:
在这里插入图片描述
由此我们还可以联想到,主窗口是所有控件的父控件,

(1)如果我们设置了主窗体的样式,而不指定作用范围,那么窗体内的所有控件都会按照主窗体的设置的样式来显示;

(2)如果我们在主窗体中设置样式时指定作用范围为QPushButton,那么该窗体内的所有QPushButton就都会显示为所设置的样式。

(3)如果父控件和子控件都设置了样式,那么子控件就按照自己的样式来显示,这是覆盖机制,因为父控件总是在子控件之前构造,子控件在构造时,会把原先的设置给覆盖掉。

3、用程序添加样式

3.1 用程序语句添加

这种方法更简单粗暴,每一个控件都有自己的setStyleSheet(QString &)成员函数,直接把方法一里面的样式语句,作为形参传入该方法即可,例如:

QString sPushButton 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值