夜凉如水

Qt添加快捷键的方法

夜凉如水 编程Qt

2017-07-26 周三 中雨转阴 北京 院里

Qt添加快捷键的方法

添加快捷键可以方便软件的使用。在Qt中,利用QShortcut类和QKeySequence类可以很容易地添加快捷键。

1.QKeySequence类的使用

QKeySequence类是顾名思义,即键盘的输入流。其有三种简单用法如下,示例中这三种用法都得到了打印对应的“Ctrl+P”的快捷键。其中,用法1和用法3使用了Qt自带的枚举类型,具体可查阅Qt文档;而方法2是以字符串形式直接写按键名。经实际使用,还是方法1和方法3有文档可查,好用一些。

QKeySequence(QKeySequence::Print);//用法1
QKeySequence(tr("Ctrl+P"));//用法2
QKeySequence(Qt::CTRL + Qt::Key_P);//用法3

2.QShortcut类的使用

QShortcut类是注册快捷键的类,用法也非常简单。

首先新建一个快捷键对象。例如,添加ctrl+left的快捷键如下所示:

QShortcut *shortcutCtrlLeft = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Left), this);

然后,就是我们熟悉的Qt的信号与槽机制了。每次快捷键触发,都会发射信号activated(),利用这个信号,连接快捷键到相应的槽函数即可:

connect(shortcutCtrlLeft, SIGNAL(activated()), this, SLOT(on_CtrlLeft_activated()));
夜凉如水
人丑就要多读书