更改禁用的 QIcon 色调颜色

Jac*_*ieg 7 qt qwidget qtstylesheets qicon qpalette

我有一个带有自定义主题的应用程序,禁用的图标呈亮灰色。我想更改禁用的图标色调颜色。

现在我知道有这样的可能性:

QTableWidgetItem *name = new QTableWidgetItem("test");
QIcon icon("toto.png");
icon.addPixmap(QPixmap("toto.png"),QIcon::Disabled);
name->setIcon(icon);
Run Code Online (Sandbox Code Playgroud)

但我有很多图标,我不想为禁用状态创建另一组图标。

是否可以将QIcons 的色调颜色从浅灰色更改为红色或黑色或任何其他颜色?

kin*_*nak 7

您可以定义自己QProxyStylegeneratedIconPixmap方法并覆盖该方法。

该方法负责为不同的图标状态生成派生像素图