未应用嵌套自定义窗口小部件的样式表(PyQt4)

Ole*_*nov 3 python qt pyqt pyqt4 qtstylesheets

我希望以下代码在外部主窗口内显示一个小的黑色区域:

class Canvas(QWidget):
    pass

app = QApplication(sys.argv)
outer = QWidget()
w = Canvas(outer)
w.setStyleSheet("background-color: black")
outer.show()
Run Code Online (Sandbox Code Playgroud)

但看起来样式表没有应用:整个外部窗口是灰色的.但是,如果w是a QWidget,则代码按预期工作.当Canvas直接显示实例(没有父项)时,样式表也正确应用:

w = Canvas()
w.setStyleSheet("background-color: black")
w.show()
Run Code Online (Sandbox Code Playgroud)

此代码显示黑色窗口.我在C++中使用Qt 4.8.6尝试过相同的样式,并且样式表也适用于从QWidget派生的嵌套窗口小部件.

我错过了什么?我在Ubuntu 14.04下使用python 2.7.6,Qt 4.8.6和PyQt 4.10.4.

ekh*_*oro 6

一个QWidget子类将忽略默认情况下(由于性能原因)的样式表.

试试这个:

w = Canvas(outer)
w.setAttribute(QtCore.Qt.WA_StyledBackground)
w.setStyleSheet("background-color: black")
Run Code Online (Sandbox Code Playgroud)