Qt 5.4 OS X, как использовать QAction как в QMenu, так и в QToolBar, но показывать значок только в QToolbar
Используя Qt 5.4 на OS X (Yosemite), у меня есть QAction
это имеет иконку. Я хочу, чтобы значок отображался в QToolbar
что я добавляю действие к. Это отлично работает. Однако я не хочу, чтобы в QMenu отображался значок, к которому я добавляю действие.
Как я могу это сделать?
1 ответ
Решение
Вы можете использовать Qt::AA_DontShowIconsInMenus
атрибут в вашем приложении или индивидуально с помощью QAction::setIconVisibleInMenu(bool visible). Прямо из документации Qt:
QApplication app(argc, argv);
app.setAttribute(Qt::AA_DontShowIconsInMenus); // Icons are *no longer shown* in menus
// ...
QAction *myAction = new QAction();
// ...
myAction->setIcon(SomeIcon);
myAction->setIconVisibleInMenu(true); // Icon *will* be shown in menus for *this* action.