【发布时间】:2017-05-12 03:33:14
【问题描述】:
我有一个带有一些 QMenu 的 QMenuBar。例如,
QMenu* menu = myMainWindow->menubar()->addMenu(tr("Settings"));
现在,我知道如果我添加一个 & 号,比如“&Settings”,我可以使用 alt+S 打开这个菜单。但是,我的应用程序需要使用自定义键。此外,在我的应用程序中,我们甚至没有“alt”键。无论如何,例如自定义键,我们在 Qt::Key 中取一个未使用的位置(特别是被认为是未知键的位置),并将它们用于事件。这正常工作。事实上,这样的事情通常有效:
int val = keyEvent->key();
if (key == MyCustomKeyEnum::CustomKey)
// do stuff
但是,如何将菜单设置为具有自定义 int 快捷键?或者,等效地,如何以编程方式从菜单栏中打开菜单?我可以轻松地将 MyCustomKeyEnum::CustomKey 中的事件连接到自定义插槽。那么,也许我可以一开始就避免使用自定义快捷键?
我尝试使用 targetMenu.exec(),但是因为我希望能够使用箭头键导航到相邻的菜单,并在正确的位置生成菜单,所以这不是一个好的选择。
【问题讨论】: