如何通过更改类名来更改背景

时间:2016-03-18 14:46:47

标签: qt pyqt4 qtstylesheets

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

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

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

static public CharacterViewModel ToViewModel(this Character c)
{
    return new CharacterViewModel(c);
}

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

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

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

有关详细信息,请参阅this wiki article