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

问题描述 投票:3回答:1

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

class Canvas(QWidget):
    pass

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

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

w = Canvas()
w.setStyleSheet("background-color: black")
w.show()

此代码显示一个黑色窗口。我已经在C ++中使用Qt 4.8.6进行了尝试,并且样式表也正确地应用于从QWidget派生的嵌套小部件。

我想念的是什么?我正在Ubuntu 14.04下使用python 2.7.6,Qt 4.8.6和PyQt 4.10.4。

python qt pyqt pyqt4 qtstylesheets
1个回答
6
投票

A QWidget子类默认情况下会忽略样式表(出于性能原因)。

尝试一下:

w = Canvas(outer)
w.setAttribute(QtCore.Qt.WA_StyledBackground)
w.setStyleSheet("background-color: black")
© www.soinside.com 2019 - 2024. All rights reserved.