我正在尝试设置窗口小部件的背景颜色,但它仅适用于窗口小部件的子窗口。下面的代码是真实应用程序结构的简单表示。我想testWidget是完全红色的,因为它的大小是100x100像素矩形,但由于某种原因只有按钮是红色的。
from PySide import QtGui
class Widget(QtGui.QWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
mainLayout = QtGui.QVBoxLayout(self)
testWidget = QtGui.QWidget()
testWidget.setFixedSize(100,100)
testWidget.setStyleSheet('background-color: red;')
testLayout = QtGui.QVBoxLayout()
testWidget.setLayout(testLayout)
but = QtGui.QPushButton('TEST')
but.setFixedSize(20,20)
testLayout.addWidget(but)
mainLayout.addWidget(testWidget)
w = Widget()
w.show()
答案 0 :(得分:4)
默认情况下,QWidget
不会填充其背景。您可以使用QFrame
代替,也可以将WA_StyledBackground
的{{1}}属性设置为True,如下所示:PySide: QWidget does not draw background color。
要仅将样式表应用于容器而不应用于其子容器,可以命名容器窗口小部件,并通过引用其名称来专门应用样式表。
以下是源自您的代码的MWE,它显示了如何使用QFrame而不是QWidget来完成它:
QWidget
导致: