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.
Другие вопросы по тегам