Класс QShortcut
Класс QShortcut используется для создания сочетаний клавиш. Подробнее...
| Заголовок: | #include <QShortcut> |
| qmake: | QT += widgets |
| Наследуется от: | QObject |
Свойства
|
- 1 свойство унаследовано от QObject
Открытые функции
| QShortcut(QWidget *parent) | |
| QShortcut(const QKeySequence &key, QWidget *parent, const char *member = nullptr, const char *ambiguousMember = nullptr, Qt::ShortcutContext context = Qt::WindowShortcut) | |
| virtual | ~QShortcut() |
| bool | autoRepeat() const |
| Qt::ShortcutContext | context() const |
| int | id() const |
| bool | isEnabled() const |
| QKeySequence | key() const |
| QWidget * | parentWidget() const |
| void | setAutoRepeat(bool on) |
| void | setContext(Qt::ShortcutContext context) |
| void | setEnabled(bool enable) |
| void | setKey(const QKeySequence &key) |
| void | setWhatsThis(const QString &text) |
| QString | whatsThis() const |
- 31 открытая функция унаследована от QObject
Сигналы
| void | activated() |
| void | activatedAmbiguously() |
- 2 сигнала унаследовано от QObject
Статические открытые члены
| const QMetaObject | staticMetaObject |
- 9 статических открытых членов унаследовано от QObject
Дополнительные унаследованные члены
Подробное описание
Класс QShortcut используется для создания сочетаний клавиш.
Класс QShortcut предоставляет способ подключения сочетаний клавиш к механизму сигналов и слотов Qt, чтобы объекты могли получать уведомления при выполнении сочетания клавиш. Сочетание клавиш может содержать все нажатия клавиш, необходимые для описания сочетания клавиш, включая состояние таких модификаторов, как Shift, Ctrl и Alt.
В некоторых виджетах использование '&' перед символом автоматически создаёт мнемоническое обозначение (сочетание клавиш) для этого символа, например, "E&xit" создаёт сочетание Alt+X (используйте '&&', чтобы отобразить фактический амперсанд). Виджет может обрабатывать и выполнять действие для данного сочетания клавиш. В X11 амперсанд не отображается, а символ подчёркивается. В Windows сочетания клавиш обычно не отображаются до тех пор, пока пользователь не нажмёт клавишу Alt, но это можно настроить. В Mac сочетания клавиш по умолчанию отключены. Вызовите qt_set_sequence_auto_mnemonic(), чтобы включить их. Однако, поскольку мнемонические сочетания клавиш не соответствуют рекомендациям Aqua, Qt не будет подчёркивать символ сочетания клавиш.
Для приложений, использующих меню, может быть удобнее использовать удобные функции, предоставляемые классом QMenu, для назначения сочетаний клавиш пунктам меню по мере их создания. В качестве альтернативы, сочетания клавиш можно связать с другими типами действий в классе QAction.
Самый простой способ создать сочетание клавиш для определённого виджета — это создать сочетание с последовательностью клавиш. Например:
shortcut = new QShortcut(QKeySequence(tr("Ctrl+O", "File|Open")),
parent); Когда пользователь вводит последовательность клавиш для данного сочетания, генерируется сигнал activated() сочетания. (В случае неоднозначности генерируется сигнал activatedAmbiguously().) Сочетание клавиш «прослушивается» циклом событий Qt, когда родительский виджет сочетания получает события.
Последовательность клавиш сочетания можно задать с помощью setKey() и получить с помощью key(). Сочетание клавиш можно включить или выключить с помощью setEnabled(), а также установить текст справки «Что это?» с помощью setWhatsThis().
См. также QShortcutEvent, QKeySequence и QAction.
Документация свойств
autoRepeat : bool
Данное свойство определяет, может ли сочетание клавиш повторяться автоматически.
Если значение равно true, сочетание клавиш будет автоматически повторяться, пока удерживается, при условии, что автоматическое повторение клавиш включено в системе. Значение по умолчанию — true.
Это свойство было добавлено в Qt 4.2.
Функции доступа:
| bool | autoRepeat() const |
| void | setAutoRepeat(bool on) |
context : Qt::ShortcutContext
Это свойство содержит контекст, в котором сочетание клавиш является допустимым.
Контекст сочетания клавиш определяет обстоятельства, при которых сочетание может быть активировано. Нормальный контекст — Qt::WindowShortcut, который позволяет активировать сочетание, если родительский (виджет, содержащий сочетание) является дочерним элементом активного виджета верхнего уровня.
По умолчанию это свойство установлено в Qt::WindowShortcut.
Функции доступа:
| Qt::ShortcutContext | context() const |
| void | setContext(Qt::ShortcutContext context) |
enabled : bool
Это свойство определяет, включено ли сочетание клавиш.
Включенное сочетание клавиш генерирует сигнал activated() или activatedAmbiguously() при возникновении события QShortcutEvent, соответствующего последовательности клавиш key().
Если приложение находится в режиме WhatsThis , сочетание клавиш не будет генерировать сигналы, а вместо этого будет отображаться текст "Что это?".
По умолчанию это свойство установлено в true.
Функции доступа:
| bool | isEnabled() const |
| void | setEnabled(bool enable) |
См. также whatsThis.
key : QKeySequence
Это свойство содержит последовательность клавиш сочетания.
Это последовательность клавиш с необязательными комбинациями Shift, Ctrl и Alt. Последовательность клавиш может быть задана несколькими способами:
setKey(0); // no signal emitted
setKey(QKeySequence()); // no signal emitted
setKey(0x3b1); // Greek letter alpha
setKey(Qt::Key_D); // 'd', e.g. to delete
setKey('q'); // 'q', e.g. to quit
setKey(Qt::CTRL + Qt::Key_P); // Ctrl+P, e.g. to print document
setKey("Ctrl+P"); // Ctrl+P, e.g. to print document По умолчанию это свойство содержит пустую последовательность клавиш.
Функции доступа:
| QKeySequence | key() const |
| void | setKey(const QKeySequence &key) |
whatsThis : QString
Это свойство содержит подсказку "Что это?" для сочетания клавиш.
Текст будет показан, когда приложение находится в режиме "Что это?" и пользователь набирает последовательность клавиш key().
Чтобы установить подсказку "Что это?" для пункта меню (с или без сочетания клавиш), установите подсказку для действия пункта меню.
По умолчанию это свойство содержит пустую строку.
Функции доступа:
| QString | whatsThis() const |
| void | setWhatsThis(const QString &text) |
См. также QWhatsThis::inWhatsThisMode() и QAction::setWhatsThis().
Документация членов-функций
QShortcut::QShortcut(QWidget *parent)
Создаёт объект QShortcut для виджета parent. Поскольку последовательность клавиш не указана, сочетание клавиш не будет генерировать сигналы.
См. также setKey().
QShortcut::QShortcut(const QKeySequence &key, QWidget *parent, const char *member = nullptr, const char *ambiguousMember = nullptr, Qt::ShortcutContext context = Qt::WindowShortcut)
Создаёт объект QShortcut для виджета parent. Сочетание клавиш действует на свой родительский виджет, прослушивая события QShortcutEvent, соответствующие последовательности key. В зависимости от неоднозначности события, сочетание вызовет функцию member или функцию ambiguousMember, если нажатие клавиши произошло в контексте context.
[virtual] QShortcut::~QShortcut()
Уничтожает сочетание клавиш.
[signal] void QShortcut::activated()
Этот сигнал генерируется, когда пользователь набирает последовательность клавиш сочетания.
См. также activatedAmbiguously().
[signal] void QShortcut::activatedAmbiguously()
Когда на клавиатуре набирается последовательность клавиш, она считается неоднозначной, если она соответствует началу более одного сочетания.
Когда последовательность клавиш сочетания завершена, activatedAmbiguously() генерируется, если последовательность клавиш всё ещё неоднозначна (т.е. она является началом одной или нескольких других последовательностей сочетаний). В этом случае сигнал activated() не генерируется.
См. также activated().
int QShortcut::id() const
Возвращает идентификатор сочетания клавиш.
См. также QShortcutEvent::shortcutId().
QWidget *QShortcut::parentWidget() const
Возвращает родительский виджет сочетания клавиш.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qshortcut.html