一、官方参考API
- 原文:Styles sheets are textual specifications that can be set on the whole application using QApplication::setStyleSheet() or on a specific widget (and its children) using QWidget::setStyleSheet(). If several style sheets are set at different levels, Qt derives the effective style sheet from all of those that are set. This is called cascading.
- 简述:
-
整个应用程序 使用 QApplication::setStyleSheet()
-
具体Widget(或者它的后代) 使用 QWidget::setStyleSheet()
-
渲染规则: 如果在不同级别设置了几个样式表,QT将从所有设置的样式表中派生出有效的样式表。这就是所谓的层叠。
- 帮助文档位置:
二、在Designer中使用样式表
- 1 在Designer中选择对象,右键选择 改变样式表
- 2 在弹出框内 可以选择 上方快捷菜单 选择样式属性
- 3 结果
- 4 也可以输入样式属性
三、在Cpp代码中使用样式表
1、部分 代码
//设置这个应用程序中 QPushButton 的对象 文字颜色:白色
qApp->setStyleSheet("QPushButton { color: white }");
//设置一个按钮的文字颜色 :蓝色
myPushButton->setStyleSheet("* { color: blue }");
//可以不完整的样式选择器
myPushButton->setStyleSheet("color: blue");
四、从文件中读取样式表
1、函数 代码
//复制到自己类中,替换此处的类名即可,即 MainWindow --》你的类名
//qss_path 是qss文件路径,可以是系统路径,也可是Qt的资源路径
void MainWindow::readStyleSheet(QString qss_path)
{
QString allStyleSheet;
QFile qssFile(qss_path);
qssFile.open(QFile::ReadOnly);
if (qssFile.isOpen())
{
allStyleSheet = QLatin1String(qssFile.readAll());
this->setStyleSheet(allStyleSheet);
qDebug() << qss_path + ": open successful!";
//qDebug() << allStyleSheet;
qssFile.close();
}
else
{
qDebug() << qss_path + ": open error";
}
}