我有大约 40 个按钮也是指示器(开或关),我每秒刷新一次这些指示器的颜色,具体取决于状态。我通过更改样式表来做到这一点。这样做是否已经过时了,如果是这样,我应该只在指标改变状态时设置一个新的样式表,还是应该使用类似 QBrush 的东西?
最佳答案
是的。我发现在 Linux 上使用 Qt 4.6.2,设置样式表以更改 QLabel 上文本的颜色非常慢。
动态样式表看起来是一个很好的解决方案,但对我来说,这是必要的 setStyle()
和 setStyleSheet()
一样贵!
经过大量实验,我发现这种替代方法的速度至少是原来的两倍,通常是 50 倍以上:
QPalette palette = lbl->palette();
palette.setColor(QPalette::WindowText, Qt::gray);
lbl->setPalette(palette);
根据您的(静态)样式表的设置方式,您必须替换
QPalette::WindowText
与 QPalette::Window
或 QPalette::Button
.见 QPalette documentation详情。
关于qt - 以动态方式使用样式表是否会增加大量计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1883301/