有没有在.qss文件为十六进制/ RGB数字给变量名的任何可能性。 对于EH
myColor = #FFCC08
QPushButton { background-color: myColor;}
这样我就可以定义在样式表的顶部的变量,并使用变量名等。无论需要,而不是使用十六进制代码。 另外,如果我需要改变颜色的话,我在一个地方改变,它会throught文件中反映出来。
我也搜索了萨斯 ,但不知道如何可以在Qt使用。
谢谢 :)
有没有在.qss文件为十六进制/ RGB数字给变量名的任何可能性。 对于EH
myColor = #FFCC08
QPushButton { background-color: myColor;}
这样我就可以定义在样式表的顶部的变量,并使用变量名等。无论需要,而不是使用十六进制代码。 另外,如果我需要改变颜色的话,我在一个地方改变,它会throught文件中反映出来。
我也搜索了萨斯 ,但不知道如何可以在Qt使用。
谢谢 :)
你可以很轻松地建立自己的小萨斯:
1.创建与变量定义的文本文件。 使用这样简单的格式:
@myColor = #FFDDEE
@myColor2 = #112233
@myWidth = 20px
2.In QSS文件使用的变量名:
QPushButton {
background-color: @myColor;
min-width: @myWidth;
}
3.Open文件和用于定义文件的每个变量改变其发生在QSS文件从定义文件中的值(字符串)。 这是一个简单的字符串替换。
4.适用于应用程序的预处理QSS。
这是最简单的解决方案。 您可以在应用程序之外同时改变定义文件和文件QSS并加以应用而没有重新编译代码。
什么你想简单地完成使用纯Qt的样式表是不可能的。
您可以实现通过修改,并从你的C ++代码中重新载入样式表,例如类似的效果:
QString myColor = "#FFCC08";
QString styleSheet = "QPushButton { background-color: %1;}";
...
myWidget->setStyleSheet( styleSheet.arg(myColor) );
不幸的是这有几个缺点(不能在设计预览,更改代码,而不是一个样式表),但它是关于尽可能靠近你可以得到你想要实现使用Qt的东西。
下面是一个使用的解决方案顶嘴 。 首先,安装Python绑定:
pip install sass
然后,使用它:
import sys
import sass
app = QApplication(sys.argv)
# Create your sass style sheet (you can also write this in a file and load the file)
style = '''
$bg-dark: #292929;
QPushButton {
color: red;
background-color: $bg-dark;
}
'''.encode('utf-8')
# Compile Sass to CSS
style = sass.compile_string(style).decode()
# And set it to your app
app.setStyleSheet(style)