我希望以下代码在外部主窗口中显示一个小的黑色区域:
class Canvas(QWidget):
pass
app = QApplication(sys.argv)
outer = QWidget()
w = Canvas(outer)
w.setStyleSheet("background-color: black")
outer.show()
但看起来样式表没有应用:整个外部窗口是灰色的。
但是,如果w
是QWidget
,则代码按预期工作。直接显示Canvas
实例(没有父项)时,样式表也正确应用:
w = Canvas()
w.setStyleSheet("background-color: black")
w.show()
此代码显示黑色窗口。 我在Qt 4.8.6中尝试过相同的C ++,并且样式表也适用于从QWidget派生的嵌套小部件。
我错过了什么? 我在Ubuntu 14.04下使用python 2.7.6,Qt 4.8.6和PyQt 4.10.4。
答案 0 :(得分:6)
默认情况下,QWidget
子类将忽略样式表(出于性能原因)。
试试这个:
w = Canvas(outer)
w.setAttribute(QtCore.Qt.WA_StyledBackground)
w.setStyleSheet("background-color: black")