QSS文件详解

Posted 看不见的R

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QSS文件详解相关的知识,希望对你有一定的参考价值。

QSS文件说明

qss语法是在css2.0的基础上开发的,所以基本支持css2.0的特性

QSS语法

  1. 选择器: #<控件名> 相当于css中的id选择器
    .<类名> 类选择器

  2. 样式: css2.0语法

    重点介绍下,伪类选择器。

QSS文件说明

qss语法是在css2.0的基础上开发的,所以基本支持css2.0的特性

QSS语法

  1. 选择器: #<控件名> 相当于css中的id选择器
    .<类名> 类选择器

  2. 样式: css2.0语法

    重点介绍下,伪类选择器。

    伪选择器以冒号(:)表示,与css里的伪选择器相似,是基于控件的一些基本状态来限定程序的规则,如hover规则表示鼠标经过控件时的状态,而press表示按下按钮时的状态。如:

    QPushButton:hover 
        Background-color:red;
    
    

    表示鼠标经过时QPushButton背景变红。

    Pseudo还支持否定符号(!),如:
    QRadioButton:!hover color: red
    表示没有鼠标移上QRadioButton时他显示的颜色是red。

    Pseudo可以被串连在一起,比如:
    QPushButton:hover:!pressed color: blue;
    表示QPushButton在鼠标移上却没有点击时显示blue字,但如果点击的时候就不会显示blue颜色了。

    同样可以和之前所讲的子控件选择器一起联合使用,如:
    QSpinBox::down-button:hover image: url(btn-combobox-press.bmp)

    与前面所讲的一样,伪选择器,子控件选择器等都是可以用逗号(,)分隔表示连续相同的设置的,如:

    QPushButton:hover,QSpinBox::down-button, QCheckBox:checked
         color: white ;image: url(btn-combobox-press.bmp);
    

QSS使用

  1. 直接在源码中编写。
qApp->setStyleSheet("QPushButton#firstBtncolor:yellow;background-color:blueQssDemobackground-color:orange");
  1. 使用文件加载
QFile styfile("xxxx/xxx/style.qss");
styfile.open(QFile::ReadOnly);
QString sty = QString::fromlatin1(styfile.readAll());
styfile.close;

setStyleSheet(sty);
伪选择器以冒号(:)表示,与css里的伪选择器相似,是基于控件的一些基本状态来限定程序的规则,如hover规则表示鼠标经过控件时的状态,而press表示按下按钮时的状态。如:
```
QPushButton:hover 
    Background-color:red;

```
表示鼠标经过时`QPushButton`背景变红。

`Pseudo`还支持否定符号`(!)`,如:
`QRadioButton:!hover  color: red `
表示没有鼠标移上`QRadioButton`时他显示的颜色是red。

`Pseudo`可以被串连在一起,比如:
`QPushButton:hover:!pressed  color: blue; `
表示`QPushButton`在鼠标移上却没有点击时显示blue字,但如果点击的时候就不会显示blue颜色了。

同样可以和之前所讲的子控件选择器一起联合使用,如:
`QSpinBox::down-button:hover  image: url(btn-combobox-press.bmp) `

与前面所讲的一样,伪选择器,子控件选择器等都是可以用逗号(,)分隔表示连续相同的设置的,如:
```
QPushButton:hover,QSpinBox::down-button, QCheckBox:checked
     color: white ;image: url(btn-combobox-press.bmp);
```
![图 2](../images/c32bd82d5c6e90e7ef588b0ddfc0c92a619a439bbe66122b2b98da11db5b4019.png)  

![图 3](../images/4548b218cc0ff32d7ce3a9fc025e55674927b46e02e3c5859522984ddfe6056f.png)  

QSS使用

  1. 直接在源码中编写。
qApp->setStyleSheet("QPushButton#firstBtncolor:yellow;background-color:blueQssDemobackground-color:orange");
  1. 使用文件加载
QFile styfile("xxxx/xxx/style.qss");
styfile.open(QFile::ReadOnly);
QString sty = QString::fromlatin1(styfile.readAll());
styfile.close;

setStyleSheet(sty);

以上是关于QSS文件详解的主要内容,如果未能解决你的问题,请参考以下文章

如何从资源中添加 .qss 文件

我的 .qss 文件无法应用于我的 .ui 文件 [重复]

Qt Creator中使用qss对界面美化没有作用(效果)的问题

3018/3/16-工作总结

我在哪里可以获得 qt 默认 plastique qss 文件?

Qt 利用Qss更换皮肤