如何通过更改类名来更改背景
Posted
技术标签:
【中文标题】如何通过更改类名来更改背景【英文标题】: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)
我尝试在窗口打开之前执行那段代码并且它可以工作。但是如果我想在窗口已经打开的情况下修改属性,它什么也不做。
我该如何解决这个问题?
【问题讨论】:
【参考方案1】:样式表不会在您更改属性时自动重新评估。
一种解决方法是在更改属性后调用QStyle::unpolish()
,然后调用QStyle::polish()
。
更多详情请见this wiki article。
【讨论】:
以上是关于如何通过更改类名来更改背景的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 DOM 通过单选按钮更改背景大小(JAVASCRIPT)