通过QSS可以实现动态更换QT程序的外观。下面我主要通过一个小例子说明下如何动态变换皮肤的功能。
首先,先创建一个test.qss文件,放置在程序目录下,文件内容如下:
QPushButton {color:red;background
-
color:#FFFFFF}
具体含义就是设置QPushButton字体颜色为red,背景颜色为#FFFFFF接着,我们创建一个QPushButton的对象,当点击这个button时,就加载这个QSS文件,具体代码如下:
void MainWindow::loadStyleSheet()
{
QFile qss("test.qss");
qss.open(QFile : :ReadOnly) ;
qApp->setStyleSheet(qss.readAll());
qss.close();
}
void MainWindow::on_pushButton_clicked()
{
loadStyleSheet();
}
{
QFile qss("test.qss");
qss.open(QFile : :ReadOnly) ;
qApp->setStyleSheet(qss.readAll());
qss.close();
}
void MainWindow::on_pushButton_clicked()
{
loadStyleSheet();
}
最后,就可以看一下效果了,点击按钮,按钮的字体颜色和背景颜色就变化了。
假如还有test2.qss文件,内容如下:
QMainWindow
{
background : url(./Screenshot-1.png)
}
QPushButton {
color : red ;
background-color : #aaaaaa
}
background : url(./Screenshot-1.png)
}
QPushButton {
color : red ;
background-color : #aaaaaa
}
当然以上只是一个小小的例子,只是为了展示qss的功能,更加丰富的内容需要大家自己去尝试。