Qt 5.4 OS X 如何在 QMenu 和 QToolBar 中使用 QAction,但仅在 QToolbar 中显示图标

Qt 5.4 OS X how to use a QAction in both a QMenu and a QToolBar, but show the icon only in the QToolbar

在 OS X (Yosemite) 上使用 Qt 5.4,我有一个带有图标的 QAction。我希望图标显示在我添加操作的 QToolbar 中。这很好用。但是,我不希望图标显示在我添加操作的 QMenu 中。

我该怎么做?

您可以在您的应用程序中使用 Qt::AA_DontShowIconsInMenus 属性,或单独使用 QAction::setIconVisibleInMenu(bool visible)。直接来自 Qt's docs:

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.