如果你自定义的控件使用Q_PROPERTY暴露了一个属性(比如color),并且在QSS中使用这个属性作为判断值,如下:
TextButton[color=”red”]
但是当你在C++代码中更改了该属性值,你会发现QSS样式并不会生效,因为你需要做如下操作以更新style:
Button *button = new Button;
...
button->setColor("yellow");
// 更新属性后应立即调用下面两个函数
style()->unpolish(button);
style()->polish(button); // force a stylesheet recomputation
本文讲解了当自定义Qt控件的属性通过Q_PROPERTY暴露并在QSS中引用时,如何确保C++代码中对该属性的修改能正确反映到样式上。文章强调了在更新属性后调用style()->unpolish和style()->polish方法的重要性。
2万+

被折叠的 条评论
为什么被折叠?



