QSS可以用于改变ui控件风格,如可以设置文本框的背景,边框颜色,设置按键按下,悬空,弹起的颜色和背景图等,在程序中使用QSS可以达到美化界面的效果。
常用的QSS设置方法有四种,以更改按键风格为例说明,如在ui中设置四个按键,设置对象名称为pushButton_1、pushButton_2、pushButton_3和 pushButton_4,通过改变四个按键的风格来说明QSS的调用方法。
方法一、在forms中的.ui文件中设置
打开ui文件,选择需要设置QSS的控件,右击选择“改变样式表”
输入如下设置内容
QPushButton {
border:2px solid cyan;
border-radius:10px;
background-color: #1f8f91;
color:#ffd175;
}
QPushButton:pressed {
border: 2px solid cyan;
border-radius:10px;
background-color: rgba(101, 218, 37, 220);
}
QPushButton:disabled {
border:2px solid #cddcff;
border-radius:10px;
background-color: #aaaa7f;
}
该部分主要设置了按键字体颜色,背景和边框属性,按下和禁用时的属性等,效果如上图。
方法二、通过函数调用设置
由控件调用setStyleSheet来实现,在ui类中增加成员函数SetButtonStyle(),内部示例代码
void SetButtonStyle()
{
QString styleInfo =
tr("QPushButton {\
border:2px solid cyan;\
border-radius:10px;\
background-color: #1f8f91;\
color:#ffd175;}\
\
QPushButton:pressed {\
border: 2px solid cyan;\
border-radius:10px;\
background-color: rgba(101, 218, 37, 220);}\
\
QPushButton:disabled {\
border:2px solid #cddcff;\
border-radius:10px;\
background-color: #aaaa7f;}");
ui->pushButton_2->setStyleSheet(styleInfo);
}
在构造函数中调用SetButtonStyle()即可改变按键风格。
说明: 方法一和方法二对于控件较少的程序还是比较适用的,方便调整代码,但是一旦控件较多,涉及改动的地方较多的话就不适用了。
方法三、通过调用单独的QSS文件来实现
新建一个txt文件,写入QSS设置代码如下:
QPushButton {
border:2px solid cyan;
border-radius:10px;
background-color: #1f8f91;
color:#ffd175;}
QPushButton:pressed {
border: 2px solid cyan;
border-radius:10px;
background-color: rgba(101, 218, 37, 220);}
QPushButton:disabled {
border:2px solid #cddcff;
border-radius:10px;
background-color: #aaaa7f;}
保存并修改后缀名为.qss文件;
代码中加载qss文件,增加类成员函数SetButtonStyle1()如下:
void Widget::SetButtonStyle1()
{
QFile qssFile("D:\\ProjectTest\\QtProject\\qss_test\\button.qss");
qssFile.open(QFile::ReadOnly);
if (qssFile.isOpen()) {
QString qssStyle = QLatin1String(qssFile.readAll());
ui->pushButton_3->setStyleSheet(qssStyle);
}
}
在类中调用该函数就可以修改按键风格
说明: 该方法对于大型程序比较适用,可以不用修改代码就可以更换控件风格,做好qss文件的归类管理,程序发布以后,更改对应的qss文件就可以调整控件风格了。
方法四、将qss文件加载到资源中来调用
1、添加qss资源文件的方法如下
点击工程,选择“add new”,依次选择“Qt”“Qt Resource File”,然后点击右下角close按键
在新弹出的窗口中输入资源名称和文件路径,点击下一步选择完成即可
项目一栏里会显示增加的resources资源信息,\resource\qss\qss_button.qrc,其中\resource\qss\是路径信息,qss_button.qrc是资源信息,在qss文件夹内,打开文件可以看到是你添加的qss文件信息。
点击添加按键,依次点击添加前缀和添加文件,我这里将前缀设置为button4,在添加文件时将qss文件夹中的button.qss文件(将方法三中的qss文件拷贝进去)添加进去即可,这时在qss文件夹内的qss_button.qrc文件会包含增加的qss文件信息。
说明: 添加resources文件时可以通过设置不同的目录和.qrc名称来分类,然后在不同的.qrc下通过前缀再进行细分,便于管理。
2、在程序中调用qss资源文件
在程序中增加调用qss资源的成员函数SetButtonStyle2()
void Widget::SetButtonStyle2()
{
QFile qssFile(":/button4/button.qss");
qssFile.open(QFile::ReadOnly);
if (qssFile.isOpen()) {
QString qssStyle = QLatin1String(qssFile.readAll());
ui->pushButton_4->setStyleSheet(qssStyle);
}
}
在ui类中调用该函数即可修改按键风格。
Qss文件的路径查看方法:选择button.qss,右击可以看到path信息,如下图
说明: 方法四同样便于qss文件的管理和调整控件风格,但是资源文件会编译到执行程序中,也就是说要修改控件风格时,需要重新编译生成执行程序,可以不用修改代码。