Q_PROPERTY与QSS更新

如果你自定义的控件使用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,Widgets,-Styles)