Класс 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 |
- 34 открытых функции унаследованы от QObject
Сигналы
| void | activated() |
| void | activatedAmbiguously() |
- 2 сигнала унаследованы от QObject
Дополнительные унаследованные члены
- 1 открытый слот унаследован от QObject
- 1 открытая переменная унаследована от QObject
- 10 статических открытых членов унаследованы от QObject
- 9 защищённых функций унаследованы от QObject
- 2 защищённых переменных унаследованы от 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.
Это свойство было введено в 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/archives/qt-5.11/qshortcut.html