Qt 5.4 OS X 如何在 QMenu 和 QToolBar 中使用 QAction,但仅在 QToolbar 中显示图标
Posted
技术标签:
【中文标题】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 【发布时间】:2015-04-13 21:27:37 【问题描述】:在 OS X (Yosemite) 上使用 Qt 5.4,我有一个带有图标的 QAction
。我希望图标显示在我添加操作的QToolbar
中。这工作正常。但是,我不希望图标显示在我添加操作的 QMenu 中。
我该怎么做?
【问题讨论】:
【参考方案1】:您可以在应用程序中使用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.
【讨论】:
非常感谢,成功了!供参考:doc.qt.io/qt-5/qaction.html#iconVisibleInMenu-prop 和 doc.qt.io/qt-5/qt.html#ApplicationAttribute-enum以上是关于Qt 5.4 OS X 如何在 QMenu 和 QToolBar 中使用 QAction,但仅在 QToolbar 中显示图标的主要内容,如果未能解决你的问题,请参考以下文章
Qt5-控件-QMenu,QMenuBar-菜单栏详解-菜单热键-菜单校验功能
如何使用 Qt 将可折叠元素(QMenu、QComboBox)渲染到位图缓冲区?
如何在 Qt Designer 中删除 QMenu 分隔符?