【问题标题】:How to change background by changing class name如何通过更改类名来更改背景
【发布时间】:2016-03-18 14:46:46
【问题描述】:

我在 Qt 中有一个带有一些标签的窗口。它们都有一个名为“show_background”的布尔属性,默认设置为 false。它还有一个 QSS 文件,当设置为 true 时会设置背景:

*[show_background=true]{
    background-image:url(:/background.png);
    /* ... */
}

它在 Qt Designer 中完美运行,但是当我想以编程方式激活背景时,它不起作用:

self.elementX.setProperty("show_background", True)

我尝试在窗口打开之前执行那段代码并且它可以工作。但是如果我想在窗口已经打开的情况下修改属性,它什么也不做。

我该如何解决这个问题?

【问题讨论】:

    标签: qt pyqt4 qtstylesheets


    【解决方案1】:

    样式表不会在您更改属性时自动重新评估。 一种解决方法是在更改属性后调用QStyle::unpolish(),然后调用QStyle::polish()。

    更多详情请见this wiki article。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-10
      • 2013-05-15
      • 1970-01-01
      • 1970-01-01
      • 2018-09-19
      • 2018-11-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多