在我的应用程序中,整个应用程序的样式表取自加载到应用程序中的资源文件。
我在那里为 QListWidget 定义了两个样式表:
QListWidget#Good{
..some color properties
}
QListWidget#Bad {
..soem different color properties
}
在一个表单中,我的 QListWidget 的对象名称是“Good”,因此它遵循 #good 样式。在运行时,我有一个案例,我想将其“SetObjectName”设置为“Bad”,并在 UI 中立即更改样式。
我注意到两件事:
显然我错过了一些“更新风格”阶段。请注意,我不能在代码中使用“setStyleSheet”,它必须来自 QSS 文件。
我错过了什么?
最佳答案
解决了这个问题。来电:
style()->unpolish(theWidget);
style()->polish(theWidget);
在更改 objectName (
setObjectName
) 后,在我的小部件上成功了。
关于qt - 更新小部件的 ObjectName 不会自动更新样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9066669/