1、QSS---注意事项:
级联:QSS可以在QApplication(整个应用程序中所有的控件)、父控件(控件本身,以及空控件内部所有的子控件)、子控件中设置;一个控件的最终样式,会受到父控件和QApplication的影响。
冲突:如果一个控件,作为后代控件,被多个祖先控件影响,则会产生不同属性之间进行叠加,相同属性之间进行覆盖。(控件最终会受到哪个控件的影响,看特异性,特指某一个控件,优先级会更高一点)
确定控件属性,首先观察其特异性,在特异性相同的情况下,根据其先后顺序确定其属性。
from PyQt5.Qt import *
class Window(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("级联和冲突的学习")
self.resize(500, 500)
self.setup_ui()
def setup_ui(self):
btn1 = QPushButton("b1", self)
btn2 = QPushButton("b2", self)
btn1.move(100, 100)
btn2.move(200, 200)
# 设置id
btn1.setObjectName("b1")
btn2.setObjectName("b2")
self.setStyleSheet("""
QPushButton{
color:red;
}
QPushButton#b1{
color:orange;
}
""")
if __name__ == "__main__":
import sys
app = QApplication(sys.argv)
window = Window()
window.resize(500, 500)
window.show()
sys.exit(app.exec_())
特异性相同:取后者:
不以类的父子关系作为控件属性的优先级选择,他们具有同样的优先级,谁在后边谁决定属性。
2、常用控件效果:
控制前景色:线性渐变,从左上角到右下角:color:qlineargradient(x1:0, y1:0, x2:1, y2:1, stop:0 white, stop:0.4 red,stop:1 black)
①:QPushButton
QPushButton{
color:qlineargradient(x1:0, y1:0, x2:1, y2:1, stop:0 white, stop:0.4 red,
stop:1 black)
border:2px solid red;
border-top-left-radius:50%;
border-top-right-radius:50%;
border-bottom-left-radius:10px;
border-bottom-right-radius:10px
}
QPushButton:hover{
color:alineargradient(x1:0, y1:0, x2:1, y2:1, stop:0 white,
stop:1 black)
border:5px dotted green;
border-top-left-radius:50%;
border-top-right-radius:50%;
border-bottom-left-radius:10px;
border-bottom-right-radius:10px
}
QPushButton:pressed{
font-size:26px;
border:10px double orange;
border-radius:30px;
border-top-right-radius:4px;
}
②:QCommandLinkButton:相比于QPushButton多了个箭头,可以直接借setIcon修改。
③:QCheckBox与复选框按钮相同,但是它可以设置三态(复选框支持三态,需要设置):
④:QLineEdit:
QRadioButton{
# 左侧内边距
padding-left:0px;
# 文字左侧留多少空白
spacing:60px;
color:red;
font-size:20px;
border:1px double red;
border-radius:40px;
}
QRadioButton::indicator{
width:35px;
height:30px;
}
QRadioButton::indicator::unchecked{
image:url(../close.png);
}
QRadioButton::indicator::checked{
image:url(../open_pic.png);
}
QLineEdit[echoMode="2"]{
background-color:green;
lineedit-password-character:65;
}
QLineEdit[readOnly="true"]{
background-colr:gray;
}
QLineEdit::hover{
border:1px solid blue;
}
QTextEdit{
border-radius:20px;
padding-top:10px;
padding-left:30px;
selection-background-color:green;
font-size:14px
}
QAbstractItemView()指的是QComboBox中下拉菜单栏。
drop-down的颜色:
滑动条:控制滑块内部的槽:滑动条内部的小滑块:add-page(滑动条划过的边),sub-page(滑动条已经划过的边)。
进度条:
chunk:控制矩形的外边界等: