使用快捷方式创建QACTION,而无需插入菜单
Create QAction with shortcut, without inserting in menu
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
#include <cassert>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QAction* back = new QAction(this);
back->setVisible(true);
back->setShortcut(QKeySequence("Ctrl+M"));
bool cres = connect(back, SIGNAL(triggered(bool)), this, SLOT(mySlot()));
assert(cres);
}
在此代码中,我尝试捕获Ctrl+M
密钥事件。我不想将动作放入菜单中。connect
返回true,但mySlot
从未被调用。当在菜单中插入操作时,快捷方式效果很好。我做错了什么?
QAction
在将其插入某个位置之前处于休眠状态。正如Vahancho所建议的那样,使用QShortcut
。您需要对每个顶级小部件(窗口)的快捷方式进行快捷方式,在此您希望它活跃。因此,如果您有5个顶级窗口,则需要5个快捷方式,每个窗口都有一个窗口作为其父。
没有GUI的全局快捷方式无法使用QShortcut
。QShortcut
仅在其关联的小部件具有焦点时才活跃。小部件可以是顶级窗口。
System-Global快捷方式是此问题的主题。
相关文章:
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 预处理器:插入结构名称中的前一个行号
- 在未初始化映射的情况下,将值插入到映射的映射中
- 如何在c++中只将键插入到bimap的一侧
- 如何将结构插入到集合中并打印集合的成员
- C++json插入数组
- Visual Studio 2019:插入多个C++风格的单行注释
- 无法获取菜单选择以运行函数.C++
- nlohmann-json将一个数组插入到另一个数组中
- 有效地使用std::unordered_map来插入或增加键的值
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- 正在插入动态数组
- 插入或删除时获取usb的dos_name
- 叮叮当当在修复时插入多个"覆盖"说明符
- 将项目插入桌面右键单击菜单从外壳扩展
- 使用快捷方式创建QACTION,而无需插入菜单
- 如何获取插入菜单项时要使用的下一个命令 ID
- 如何将资源中的菜单插入到现有菜单中
- Qt 4:如何在主窗口菜单中插入QAction