未应用嵌套自定义小部件的样式表
Stylesheet for nested custom widget not applied
我希望下面的代码在外部 main 中显示一个小的黑色区域 window:
class Canvas(QWidget):
pass
app = QApplication(sys.argv)
outer = QWidget()
w = Canvas(outer)
w.setStyleSheet("background-color: black")
outer.show()
但看起来样式表没有应用:整个外部 window 是灰色的。
但是,如果 w
是 QWidget
,代码将按预期工作。当 Canvas
实例直接显示(没有父级)时,样式表也会正确应用:
w = Canvas()
w.setStyleSheet("background-color: black")
w.show()
此代码显示黑色 window。
我在 C++ 中使用 Qt 4.8.6 进行了相同的尝试,样式表也适用于从 QWidget 派生的嵌套小部件。
我错过了什么?
我在 Ubuntu 14.04.
下使用 python 2.7.6、Qt 4.8.6 和 PyQt 4.10.4
QWidget
子类默认会忽略样式表(出于性能原因)。
试试这个:
w = Canvas(outer)
w.setAttribute(QtCore.Qt.WA_StyledBackground)
w.setStyleSheet("background-color: black")
我希望下面的代码在外部 main 中显示一个小的黑色区域 window:
class Canvas(QWidget):
pass
app = QApplication(sys.argv)
outer = QWidget()
w = Canvas(outer)
w.setStyleSheet("background-color: black")
outer.show()
但看起来样式表没有应用:整个外部 window 是灰色的。
但是,如果 w
是 QWidget
,代码将按预期工作。当 Canvas
实例直接显示(没有父级)时,样式表也会正确应用:
w = Canvas()
w.setStyleSheet("background-color: black")
w.show()
此代码显示黑色 window。 我在 C++ 中使用 Qt 4.8.6 进行了相同的尝试,样式表也适用于从 QWidget 派生的嵌套小部件。
我错过了什么? 我在 Ubuntu 14.04.
下使用 python 2.7.6、Qt 4.8.6 和 PyQt 4.10.4QWidget
子类默认会忽略样式表(出于性能原因)。
试试这个:
w = Canvas(outer)
w.setAttribute(QtCore.Qt.WA_StyledBackground)
w.setStyleSheet("background-color: black")