我期望下面的代码显示外部主窗口内的一个小的黑色区域:
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()这段代码显示了一个黑色窗口。我在C++中也尝试过QT4.8.6,样式表也适用于从QWidget派生的嵌套小部件。
我遗漏了什么?我在Ubuntu14.04下使用python2.7.6、Qt 4.8.6和PyQt 4.10.4。
发布于 2015-04-08 03:11:54
默认情况下,QWidget子类将忽略样式表(出于性能原因)。
试试这个:
w = Canvas(outer)
w.setAttribute(QtCore.Qt.WA_StyledBackground)
w.setStyleSheet("background-color: black")https://stackoverflow.com/questions/29504589
复制相似问题