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

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。

【讨论】:

以上是关于如何通过更改类名来更改背景的主要内容,如果未能解决你的问题,请参考以下文章

如何通过向上/向下滚动来更改 iOS App 背景

如何使用javascript通过类名更改html元素的值

如何使用 Angular 6 中的类名更改背景颜色?

如何使用 DOM 通过单选按钮更改背景大小(JAVASCRIPT)

如何通过Powershell代码更改特定WPF列表框项的背景颜色?

如何更改MFC按钮的背景色