【笔记1-3】Qt系列:setShortcut 设定快捷键 取消快捷键

使用QKeyEvent键盘按下事件来设定快捷键,虽然很方便,但也有不舒服的情况,比如主窗口中包含多个小窗口,聚焦到小窗口时,主窗口的按下事件就不响应了,因此需要不受窗口限制的全局快捷键设定方式

QAction和QPushButton都有setShortcut ()接口,可以用来设定快捷键

代码分析

 QMenuBar * menubar = new QMenuBar(this);//创建菜单栏

    QMenu *menu_test;

    menu_test = new QMenu("menu11");//创建菜单

    QAction * action_1;

    action_1 = new QAction("act1",this);//创建动作

    menu_test->addAction(action_1);

    connect(action_1 , SIGNAL(triggered()) , this , SLOT(textset()));//关联槽函数

    action_1->setShortcut(tr("Ctrl+1"));//设定快捷键

    action_1->setShortcut(0);//如果写了这句就可以取消快捷键

    menubar->addMenu(menu_test);

setShortcut的内容有多种设置方法:

setShortcut(Qt::CTRL + Qt::Key_B);
setShortcut(tr("Ctrl+1"));
setShortcut(QKeySequence("Ctrl+2"))

取消快捷键也有几种方法:

setShortcut(0);
setShortcut(QKeySequence());

如果要制作带有自定义快捷键列表的界面,需要动态设定action的快捷键,这种方式比较合适

你可能感兴趣的:(Qt相关,笔记,qt,开发语言)