我可以通过样式表更改对象名称来更改 QObject 的样式吗?

问题描述 投票:0回答:1

我最近了解到使用样式表在 Qt 中设置对象样式的好方法。现在我想在特定事件发生后更改 QFrame 的背景颜色。所以我设置了两个条目

QFrame#ColorA {
        background-color: #FFFFFF;
}

QFrame#ColorB {
        background-color: #B2D235;
}

并为 QFrame 指定了 ObjectName

ColorA
,它显示得非常好。但是,当所述事件发生并且我将 ObjectName 设置为
ColorB
时,UI 中没有任何变化。

我知道我可以通过将样式表设置为

background-color: #B2D235
来更改颜色,但我认为必须有更好的方式通过样式表。

c++ qt
1个回答
0
投票

要使样式修改生效,必须调用unpolish()/polish()

因此,当您的活动发生时,请添加类似的内容

style()->unpolish(this);
style()->unpolish(ui->your_widget);
style()->polish(this);
style()->polish(ui->your_widget);
© www.soinside.com 2019 - 2024. All rights reserved.