Python 如何使用样式表设置qwidget的背景色?
关于Qt样式表,我似乎不太明白。我只想将小部件的背景色设置为白色。但由于某些原因,背景色实际上只出现在我的小部件的子部件中 我试图将Python 如何使用样式表设置qwidget的背景色?,python,pyqt,pyqt5,qtstylesheets,Python,Pyqt,Pyqt5,Qtstylesheets,关于Qt样式表,我似乎不太明白。我只想将小部件的背景色设置为白色。但由于某些原因,背景色实际上只出现在我的小部件的子部件中 我试图将self.setAutoFillBackground(True)添加到我的代码中,但没有成功 我还尝试从中选择解决方案。它可以工作,但前提是我不设置样式表,这是底部边框所需要的 class TopLabelNewProject(qt.QWidget): def __init__(self, parent=None): super().__in
self.setAutoFillBackground(True)
添加到我的代码中,但没有成功
我还尝试从中选择解决方案。它可以工作,但前提是我不设置样式表,这是底部边框所需要的
class TopLabelNewProject(qt.QWidget):
def __init__(self, parent=None):
super().__init__(parent)
layout = qt.QHBoxLayout(self)
layout.setContentsMargins(40, 0, 32, 0)
self.setLayout(layout)
self.setFixedHeight(80)
self.setStyleSheet("""
background-color: white;
border-bottom: 1px solid %s;
""" % colors.gray)
self.label = qt.QLabel("Dashboard")
self.label.setStyleSheet("""
QLabel {
font: medium Ubuntu;
font-size: 20px;
color: %s;
}""" % colors.gray_dark)
layout.addWidget(self.label, alignment=qt.Qt.AlignLeft)
self.newProjectButton = Buttons.DefaultButton("New project", self)
layout.addWidget(self.newProjectButton, alignment=qt.Qt.AlignRight)
注意:Buttons.DefaultButton只是一个带有自定义样式表的QPushButton
这就是我想要实现的,一个带有标签和按钮的白色标题栏:
但只有标签有白色背景
试试看:
import sys
from PyQt5 import Qt as qt
class TopLabelNewProject(qt.QWidget):
def __init__(self, parent=None):
super().__init__(parent)
layout = qt.QHBoxLayout(self)
layout.setContentsMargins(40, 0, 32, 0)
self.setLayout(layout)
self.setFixedHeight(80)
self.label = qt.QLabel("Dashboard")
layout.addWidget(self.label, alignment=qt.Qt.AlignLeft)
# self.newProjectButton = Buttons.DefaultButton("New project", self)
self.newProjectButton = qt.QPushButton("New project", self)
layout.addWidget(self.newProjectButton, alignment=qt.Qt.AlignRight)
style = '''
QWidget {
background-color: white;
}
QLabel {
font: medium Ubuntu;
font-size: 20px;
color: #006325;
}
QPushButton {
background-color: #006325;
color: white;
min-width: 70px;
max-width: 70px;
min-height: 70px;
max-height: 70px;
border-radius: 35px;
border-width: 1px;
border-color: #ae32a0;
border-style: solid;
}
QPushButton:hover {
background-color: #328930;
}
QPushButton:pressed {
background-color: #80c342;
}
'''
if __name__ == '__main__':
app = qt.QApplication(sys.argv)
app.setStyleSheet(style)
ex = TopLabelNewProject()
ex.show()
sys.exit(app.exec_())
首先(仅更改一个小部件):右键单击小部件,单击“更改样式表”,样式表窗口打开,当您在窗口中保存内容时,小部件也将更改。
第二(更改所有选定的小部件):使用属性窗口,标记所有要更改的小部件,单击。。。样式表行的。当您现在更改所选的所有小部件时,样式表窗口将打开
插入样式表:
QLabel我找到了一个解决方案:
self.setAttribute(qt.qt.WA_StyledBackground,True)
,但我不明白为什么需要这样做。在样式表中设置背景色使我非常清楚地知道,我真的很想“使用样式化背景”这本作品的可能副本,谢谢。显然,如果我不希望我的应用程序中的所有其他QWidgets
也有白色背景,并且我的所有按钮都是绿色和圆形的,那么我需要更具体地使用我的类型选择器。但是当我在应用程序上设置样式表而不是小部件时,看到不同的结果会使样式表机制更加复杂我看不清楚,明白吗
QLabel{
border-style: outset;
border-width: 2px;
border-color: black;
Background-color: rgb(255,247,191);
color: black;
}