【发布时间】:2017-04-26 06:00:18
【问题描述】:
我正在 Linux 上构建 Qt 应用程序。我在主窗口中有一个菜单栏,里面有两个菜单,每个菜单都有几个操作,所有这些都有与之关联的键盘快捷键。键盘快捷键在菜单未打开时起作用,但当其中一个菜单打开时,它们都不起作用。
在使用 [menuobject]->addAction 将操作添加到各自的菜单之前,使用 setShortcut 将快捷方式添加到操作。所有动作都以主窗口为父窗口。在阅读QAction shortcut doesnt always work 之后,我添加了对 addAction 的调用,将操作添加到主窗口。这并没有解决问题。
其中一个菜单项的代码示例:
//In the main window constructor
gameQuit = new QAction(QString(tr("&Quit\tCtrl+Q")), this);
gameQuit->setShortcut(QKeySequence(Qt::Key_Q | Qt::CTRL));
addAction(gameQuit);
connect(gameQuit, SIGNAL(triggered()), this, SLOT(close()));
gameMenu = menuBar()->addMenu(QString(tr("&Game")));
gameMenu->addAction(gameQuit);
在我假设是用 Qt 编写的 QtCreator 中,菜单项的键盘快捷键在菜单打开时确实有效,所以我认为必须有办法。
感谢您的帮助。
【问题讨论】:
-
为什么这被否决了?
-
我猜这是因为你没有提供一个最小的例子。在 StackOverflow 上,大多数问题都需要一个小代码示例来显示问题并且其他人可以尝试。
-
@drescherjm 嗯...在 prepost 指南中没有看到。我会牢记在心,以备不时之需。谢谢。
标签: c++ qt keyboard-shortcuts