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"); }
解決辦法是換成兼容字符路徑。
另請參閱:
版權聲明: 本文為獨傢原創稿件,版權歸 樂數軟件 ,未經許可不得轉載。