Qt使用qss

简介

设计Qt程序UI界面的时候,可以像Web使用CSS一样,使用QSS,使界面美化跟代码层分开,降低了耦合性,便于维护。


新建QSS

新建文本文件,写入样式表内容,更改文件后缀名为qss;这边名称为style.qss。
例如:(style.qss)

QPushButton{  
    color:white;  
    border-radius:3px;  
    background-color: black;  
}  
QLabel{  
    color:blue;  
}  

QLineEdit{  
    text-align: center;  
    color:red;  
    background-color: transparent;  
    border: 1px solid white;  
    selection-color:yellow;  
    selection-background-color:green;  
}  
QRadioButton{  
    color: slateblue;  
}  
QRadioButton::indicator:on{  
    background-image: url("1.gif");  
}  
QComboBox{  
    min-width: 4em;  
    background-color: transparent;  
}  

加载QSS

(1)使用资源文件加载
在工程中新建资源文件*.qrc,将qss文件加入资源文件qrc中,此处注意prefix最好为”/”,否则在调用qss文件时会找不到文件;

通过传入路径\文件名的方式创建一个QFile对象,以readonly的方式打开,然后readAll,最后qApp->setStyleSheet就可以使qss生效。

QString qss;  
QFile qssFile(":/qss/style.qss");  
qssFile.open(QFile::ReadOnly);  

if(qssFile.isOpen())  
{  
     qss = QLatin1String(qssFile.readAll());  
     qApp->setStyleSheet(qss); 
     qssFile.close();  

}  

(2)写一个静态加载样式的函数

#include <QFile>
#include <QApplication>

class CommonHelper
{
public:
    static void setStyle(const QString &style) {
        QFile qss(style);
        qss.open(QFile::ReadOnly);
        qApp->setStyleSheet(qss.readAll());
        qss.close();
}
};

//使用方法
// 加载QSS样式
CommonHelper::setStyle("style.qss")

### 如何在 Qt 中通过 QSS 创建样式文件 #### 使用 QSS 文件设置样式 QSSQt Style Sheets)是一种用于定制 Qt 应用程序样式的语言,它与 CSS 类似。为了在 Qt 项目中使用 QSS 样式文件,通常需要以下几个步骤: 1. **创建 QSS 文件** 首先,在项目的资源目录下创建一个新的 `.qss` 文件。该文件可以命名为 `style.qss` 或其他有意义的名字。 2. **编写 QSS 样式规则** 在这个 `.qss` 文件中,按照 QSS 的语法规则编写样式声明。例如: ```css QPushButton { background-color: lightblue; border-radius: 5px; padding: 5px; } QLineEdit:focus { border: 2px solid green; } ``` 3. **加载并应用 QSS 文件** 接下来,可以通过代码将此 QSS 文件中的样式应用于整个应用程序。以下是实现这一功能的典型方法[^2]: ```cpp QFile file(":/qss/style.qss"); if (file.exists()) { // 判断文件是否存在 file.open(QFile::ReadOnly); // 以只读方式打开文件 QString styleSheet = QLatin1String(file.readAll()); // 将文件内容读取为字符串 qApp->setStyleSheet(styleSheet); // 设置全局样式 file.close(); // 关闭文件 } ``` 4. **注意事项** - 确保在使用 `QFile` 类时已包含相应的头文件 `<QFile>`[^3]。 - 加载完成后记得调用 `close()` 方法关闭文件,以免造成资源泄漏。 - 如果路径错误或者文件不存在,则可能导致样式无法正常生效。 以上就是在 Qt 中利用 QSS 创建和加载样式文件的过程。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值