我在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);
}
我已经尝试在打开窗口之前执行该段代码并且它可以工作。但是如果我想在窗口打开时修改属性,它什么都不做。
我该如何解决这个问题?
答案 0 :(得分:1)
更改属性时,不会自动重新评估样式表。
解决方法是在更改属性后调用QStyle::unpolish()
,然后调用QStyle::polish()
。
有关详细信息,请参阅this wiki article。