十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶(hù) + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專(zhuān)業(yè)推廣+無(wú)憂(yōu)售后,網(wǎng)站問(wèn)題一站解決
QSS即Qt樣式表,是用來(lái)自定義控件外觀的一種機(jī)制,QSS大量參考了Css的內(nèi)容,但QSS的功能要比Css弱得多,體現(xiàn)在選擇器少,可以使用的QSS屬性也少,而且并不是所有的屬性都可以應(yīng)用在PyQt的控件上,QSS使頁(yè)面美化跟代碼層分開(kāi),利于維護(hù)

QSS的語(yǔ)法規(guī)則幾乎與CSS相同,QSS樣式由兩部分組成,其中一部分是選擇器(Selector),指定哪些軟件會(huì)受到影響,另一部分是聲明(Declaration),指定哪些屬性應(yīng)該在控件上進(jìn)行設(shè)置,聲明部分是一系列的“屬性:值”對(duì),使用(;)分割各個(gè)不同的屬性值對(duì),使用大括號(hào)({})將所有的聲明包括在內(nèi),例如
QPushButton{color:red}
表示設(shè)置QPushButton類(lèi)及其子類(lèi)的所有實(shí)例的前景色是紅色,其中,QPushButton表示選擇器,指定所有的QPushButton類(lèi)及其子類(lèi)都會(huì)受到影響,注意,凡是繼承自QPushButton的子類(lèi)都會(huì)受到影響,這是與Css不同的地方,因?yàn)閏ss應(yīng)用的都是一些標(biāo)簽,沒(méi)有類(lèi)的結(jié)構(gòu),更沒(méi)有子類(lèi)的概念,{color:red}則是規(guī)則的定義,表示指定前景色是紅色
實(shí)例:QSS語(yǔ)法規(guī)則示范import sys
from PyQt5.QtWidgets import *
class WindowDemo(QWidget):
def __init__(self):
super(WindowDemo, self).__init__()
#設(shè)置窗口標(biāo)題
self.setWindowTitle('QSS樣式')
#實(shí)例化按鈕,設(shè)置顯示文本
btn1=QPushButton(self)
btn1.setText('按鈕1')
# 實(shí)例化按鈕,設(shè)置顯示文本
btn2=QPushButton(self)
btn2.setProperty('name','btn2')
btn2.setText('按鈕2')
#添加控件到布局中,設(shè)置窗口布局方式
vbox=QVBoxLayout(self)
vbox.addWidget(btn1)
vbox.addWidget(btn2)
#設(shè)置樣式;按鈕的背景顏色綠色
# qssStyle = '''
# QPushButton[name='btn2']{background-color:green}
# '''
qssStyle = '''
QPushButton{background-color:green}
'''
#加載設(shè)置好的樣式
self.setStyleSheet(qssStyle)
if __name__ == '__main__':
app=QApplication(sys.argv)
win=WindowDemo()
win.show()
sys.exit(app.exec_())