QAction 快捷方式并不总是有效

新手上路,请多包涵

我在一个菜单项上有一个 Qaction,用于删除我的一个视图中的选定项目。这是我创建动作的方式:

 deleteAct = new QAction( tr("Delete Selected"), this);
deleteAct->setShortcut(QKeySequence::Delete);
connect(deleteAct, SIGNAL(triggered()), this, SLOT(deleteSelected()));

我设置了一个键盘快捷键(删除键),它应该触发 delectAct 操作。它大部分时间都可以工作,但在某些时候它会停止工作……有谁知道为什么快捷方式会停止工作?

注意:如果我从菜单项触发它,该操作仍然有效。它只是不…的捷径

原文由 MBU 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.7k
2 个回答

您需要将操作添加到小部件,因为它将监听关键事件的小部件。假设“this”是一个主窗口,只需执行

addAction(deleteAct);

请注意,您可以将相同的操作添加到多个小部件(这是分离操作概念的重点)。所以可以将它添加到主窗口 菜单中。

原文由 David Faure 发布,翻译遵循 CC BY-SA 3.0 许可协议

尝试更改操作的 快捷方式上下文,例如:

 deleteAct->setShortcutContext(Qt::ApplicationShortcut);

原文由 user362638 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题