Класс QShortcut обеспечивает способ подключения сочетания клавиш к механизмам и слотам QT, чтобы объекты могли быть проинформированы. Комплект может быть настроен, чтобы содержать все нажатия клавиш, включая состояния клавиш модификатора, такие как Shift, Ctrl и Alt.
Для использования возможностей горячих клавиш необходимо подключить заголовочный файл:
#include <QShortcut>
Важно помнить что горячие клавиши работают только в активное окно.
Рассмотрим пример реализации:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QShortcut>
#include <QMessageBox>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
Ui::MainWindow *ui;
// F7
QShortcut *keyF7;
// Ctrl + V
QShortcut *keyCtrlV;
private slots:
void slotF7();
void slotCtrlV();
};
#endif // MAINWINDOW_H
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
keyF7 = new QShortcut(this);
keyF7->setKey(Qt::Key_F7);
connect(keyF7, SIGNAL(activated()), this, SLOT(slotF7()));
keyCtrlV = new QShortcut(this);
keyCtrlV->setKey(Qt::CTRL + Qt::Key_V);
connect(keyCtrlV, SIGNAL(activated()), this, SLOT(slotCtrlV()));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::slotF7()
{
QMessageBox::information(this,"keyF7", "slotF7", QMessageBox::Ok);
}
void MainWindow::slotCtrlV()
{
QMessageBox::information(this,"keyCtrlV", "slotCtrlV", QMessageBox::Ok);
}
В данном примере реализовано два набора горячих клавиши:
- Key_F7 (F7)
- CTRL + Key_V (Ctrl+V)
При нажатии появится диалоговое окно для димострации:


Все клавиши и модификаторы клавиш находятся в файле:
\QtCore\qnamespace.h
