Qt的动态属性是否真的如此动态的样式表?
我有样式表和动态属性的基本示例:
/*stylesheet:*/
*[field_mandatory="true"] { background-color: "yellow";}
Run Code Online (Sandbox Code Playgroud)
我在运行时在代码中的某处发生了这种情况:
/*code:*/
myWidget->setProperty("field_mandatory", field->isFilled() );
Run Code Online (Sandbox Code Playgroud)
在运行时更改此属性时,UI中没有任何更改.
有没有人有想法在更改属性时更新Qt的样式表引擎必须做些什么,或者它是否能够处理这些情况?
顺便说一句.我正在使用Qt 4.4
Jas*_*son 20
Qt在他们的FAQ中有以下建议:
style()->unpolish(theWidget);
style()->polish(theWidget);
Run Code Online (Sandbox Code Playgroud)
他们还说你可以通过执行以下操作来重置样式表,但它更昂贵:
setStyleSheet(styleSheet());
Run Code Online (Sandbox Code Playgroud)
我发现了一种快速,虽然有点hackish的方式来更新小部件的样式.
myWidget->style()->unpolish(myWidget);
myWidget->ensurePolished();
Run Code Online (Sandbox Code Playgroud)
更改属性后执行此操作可保持属性数据和UI之间的关联.
| 归档时间: |
|
| 查看次数: |
9404 次 |
| 最近记录: |