Установите пользовательский значок для QAction, когда отключен - PullRequest
1 голос
/ 31 августа 2009

Можно ли отображать пользовательский значок для QAction, когда он отключен? Например. отображать значок A, когда инструмент включен, и значок B, когда инструмент отключен.

Ответы [ 3 ]

7 голосов
/ 01 сентября 2009

При создании QAction вы передаете его QIcon. Хотя я сам не пробовал, но заметил, что QIcon имеет функцию void QIcon::addPixmap ( const QPixmap & pixmap, Mode mode = Normal, State state = Off ). Mode может быть одним из Normal, Disabled, Active или Selected. Таким образом, я предполагаю, что что-то вроде этого будет работать:

QPixmap enabled_icon( "enabled.png" );
QPixmap disabled_icon( "disabled.png" );
QIcon icon( enabled_icon );
icon.addPixmap( disabled_icon, QIcon::Disabled );
QAction action( icon, "&Menu action..." );

Мне было бы интересно узнать, действительно ли это работает. Я никогда не удосужился его протестировать, но, похоже, именно для этого и было разработано.

0 голосов
/ 30 апреля 2016

Если кто-то ищет то же самое для состояния действия

QIcon icon;
icon.addPixmap( selectedPixmap, QIcon::Normal,QIcon::On );
icon.addPixmap( normalPixmap, QIcon::Normal,QIcon::Off );
0 голосов
/ 31 августа 2009

Подключите слот для сигнала QAction :: change (), затем установите значок там, если действие включено или отключено. (Вы можете сделать это, создав подкласс QAction и добавив слот в подкласс, соединив его в конструкторе).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...