【发布时间】:2019-12-03 01:07:24
【问题描述】:
我有一个上下文菜单 (QMenu) 并像这样向它添加一个复制操作:
m_copyNodeAction = new QAction(tr("Copy node"), &m_mainContextMenu);
m_copyNodeAction->setShortcut(QKeySequence("Ctrl+C"));
m_copyNodeAction->setShortcutVisibleInContextMenu(true);
m_mainContextMenu.addAction(m_copyNodeAction);
QObject::connect(m_copyNodeAction, &QAction::triggered, [this] () {
std::cout << "Copy node triggered!" << std::endl;
});
菜单是这样打开的(宿主类派生自QGraphicsView):
m_mainContextMenu.exec(mapToGlobal(m_clickedPos));
菜单显示操作 OK,但不是由 Ctrl+C 触发。我在主菜单中对操作使用了相同的方法,为什么会有所不同?
我也尝试设置一些其他快捷方式,但没有任何效果。
【问题讨论】:
-
试试 m_copyNodeAction->setShortcutContext(Qt::ApplicationShortcut);
-
没有帮助。我尝试了所有可能的上下文选项。
标签: qt qt5 qmenu qaction qkeysequence