QAction快捷方式并不总是有效

MBU*_*MBU 12 c++ qt action keyboard-shortcuts

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

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

我设置了一个键盘快捷键(Delete键),它应该触发delectAct动作.它大部分时间都有效,但在某些时候它停止工作......有谁知道为什么捷径会停止工作?

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

Dav*_*ure 22

您需要将操作添加到窗口小部件,因为它是将侦听关键事件的窗口小部件.假设"这个"是一个主窗口,那就干脆做

addAction(deleteAct);
Run Code Online (Sandbox Code Playgroud)

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

  • +1 在我也添加到主窗口操作之前,我的上下文菜单快捷方式无法正常工作。 (3认同)

小智 7

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

deleteAct->setShortcutContext(Qt::ApplicationShortcut);
Run Code Online (Sandbox Code Playgroud)