Qt 样式表又称 Qt Style Sheet, 缩写为 QSS。
setStyleSheet 公共槽用于按 CSS2 规范,设置控件 QSS 样式。
QSS 对像 rgba(0, 0, 0, 170) 的 RGBA 颜色值的兼容性,优于像 #bf363636 的十六进颜色值。
用户编写 QSS 键入的颜色值是 rgb(0, 0, 0, 175),而不是 rgba(0, 0, 0, 175),运行时后台会输出以下警告提示:
QCssParser::parseColorValue: Specified color without alpha value but alpha given: 'rgb 0, 0, 0, 175'
若按以下形式,设置 labelExample 样式:
self.labelExample.setStyleSheet("QLabel{color:#0fff;}")
运行时后台会输出以下警告提示:
QCssParser::parseHexColor: Unknown color name '#0fff'
先设置 buttonExample 固定大小,再设置样式:
self.buttonExample.setFixedSize(20, 20) self.buttonExample.setStyleSheet(""" QPushButton{ background:transparent; border-image:url(res/images/example.png); } QPushButton:pressed{ border-image:url(res/images/example_press.png); }""")
运行时后台有时会输出以下警告提示 (由于上下文或样式本身存在问题,导致无法解析 QSS 样式):
Could not parse stylesheet of object QPushButton(0x12653ed8, name = "buttonExample")
以下范例中的十六进制 #bf363636 颜色值,对应 rgba(54, 54, 54, 191),而不是 rgba(191, 54, 54, 54),有点另类:
QWidget{ background-color:#bf363636; }
按 rgba(54, 54, 54, 191) 展示半透明黑色,若按 rgba(191, 54, 54, 54) 展示半透明暗红色。
以下范例 QTableWidget 的单元格边框线,应完全透明:
QWidget#widgetContent{ background-color:rgba(255, 255, 255, 235); } QTableWidget{ background-color:rgba(0, 0, 0, 0); gridline-color:rgba(0, 0, 0, 0); }
单元格边框线颜色却可能变成 rgb(0, 0, 0) 黑色,需按下以形式设置 (与背景同色):
QTableWidget{ background-color:rgba(0, 0, 0, 0); gridline-color:rgba(255, 255, 255, 235); }
不兼容包含以下非 ASCII 特殊字符的边界图像样式路径:
QWidget#widgetImage{ border-image:url("test(副本).png"); }
解决办法是换成兼容字符路径。
另请参阅:
版权声明: 本文为独家原创稿件,版权归 乐数软件 ,未经许可不得转载。