qt - 以动态方式使用样式表是否会增加大量计算

标签 qt

我有大约 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::WindowTextQPalette::WindowQPalette::Button .见 QPalette documentation详情。

关于qt - 以动态方式使用样式表是否会增加大量计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1883301/

相关文章:

c++ - 如何按列对 QTableView 进行排序?

python - QPushButton FocusIn 产生哪个信号?

qt - TreeView - 如何使用角色作为图像源

c++ - 为什么我无法连接到我的数据库?

android - 在 Android 上清除 QML 中的 TextField

qt - 如何在 Qt Symbian 上将图标放置在屏幕中央?

c++ - 有没有办法反转 QWidget::setMask() 函数或达到类似的效果?

c++ - Qt修改PathItem

windows - QImage抖动质量

c++ - 在没有 WordWrap 的情况下适合 QLabel 高度