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)
请注意,您可以将相同的操作添加到多个小部件(这是分离的操作概念的全部要点).所以可以将它添加到主窗口和菜单中.
小智 7
尝试更改操作的快捷方式上下文,例如:
deleteAct->setShortcutContext(Qt::ApplicationShortcut);
Run Code Online (Sandbox Code Playgroud)