【问题标题】:Stylesheet for nested custom widget not applied未应用嵌套自定义小部件的样式表
【发布时间】:2015-06-12 19:36:52
【问题描述】:

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

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()

此代码显示一个黑色窗口。 我在 Qt 4.8.6 的 C++ 中尝试过同样的操作,样式表也适用于从 QWidget 派生的嵌套小部件。

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

【问题讨论】:

    标签: python qt pyqt pyqt4 qtstylesheets


    【解决方案1】:

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

    试试这个:

    w = Canvas(outer)
    w.setAttribute(QtCore.Qt.WA_StyledBackground)
    w.setStyleSheet("background-color: black")
    

    【讨论】:

      猜你喜欢
      • 2011-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-25
      • 2013-11-15
      • 1970-01-01
      • 2023-03-30
      相关资源
      最近更新 更多