【发布时间】:2018-05-03 09:57:47
【问题描述】:
在禁用标签状态下如何控制其像素图的颜色?
出于一些奇怪的原因,我需要在活动和禁用状态(显示的徽标)中具有完全相同的像素图外观。
当标签处于禁用状态时,我在带有label->setPixmap(pm) 的 QLabel 上放置的像素图始终以不同于活动状态的颜色显示。
我在样式表上苦苦挣扎并尝试了QFrame:disabled{background-color: rgba(..., ..., ..., 255);},但被像素图覆盖的标签部分总是与另一种颜色混合,这似乎来自 Qt 对禁用状态的控制。
编辑:看起来,Qt 总是在禁用状态下混合像素图颜色和背景颜色。但是 Qt 不会在活动状态下混合颜色;然后像素图颜色保持不透明。我需要关闭禁用状态的这种混合行为。
【问题讨论】:
-
您看到了吗:stackoverflow.com/questions/36868434/…?你试过了吗?
-
@vahancho:是的,但它是关于按钮的,而我的案例是关于带有一组像素图的 QLabel。
-
This is the code 在
QLabel上绘制像素图。如果您不需要任何QLabel功能,您可以继承QWidget并在那里绘制您的像素图。或者您可以创建自己的QStyle类并重新实现QStyle::generatedIconPixmap并将该样式设置为您的标签。或者继承QLabel并重新实现paintEvent方法。