将快捷键分配给按钮 - Qt C++

Cra*_*der 21 c++ qt

我使用Qt Creator创建了一个GUI.这是通过拖放小部件.现在我想为所有按钮分配快捷键.这里的任何人都可以告诉我怎么做吗?先感谢您.

hou*_*oft 45

您的按钮可能有一个连接到其clicked()信号的插槽.

要添加快捷键,只需将快捷键的activated()信号连接到同一插槽即可.

在您的代码中,#include <QShortcut>然后您将能够为这样的插槽添加快捷键:

QShortcut *shortcut = new QShortcut(QKeySequence("Ctrl+O"), parent);
QObject::connect(shortcut, SIGNAL(activated()), receiver, SLOT(yourSlotHere()));
Run Code Online (Sandbox Code Playgroud)

如果parent是您的快捷方式的父级(例如主窗口),yourSlotHere()则是您希望快捷方式调用的插槽的名称,以及receiver对象所在的yourSlotHere()位置.

替换"Ctrl+O"为您要分配的任何快捷方式.

您还可以在QShortcut的文档页面上找到更多信息.

  • 我们不是在泄漏`shortcut`对象,还是因为我们指定了父对象而被释放? (3认同)

Pav*_*ant 15

或者,如果快捷键对应于按钮文本中的某个字符,则可以预先选择该字符.如果你想要文字&,请使用&&.


Plo*_*uff 6

今天(Qt5.7),我们可以直接在Qt Designer中使用shortcut属性指定快捷方式

在此处输入图片说明

非常方便......即使有点错误:在切换到另一个小部件之前,我必须通过单击同一小部件​​的另一个属性来“验证”快捷方式!

但它有效。