Класс QShortcut
Класс QShortcut используется для создания сочетаний клавиш. Подробнее...
| Заголовок: | #include <QShortcut> |
| qmake: | QT += widgets |
| Наследует: | QObject |
Свойства
|
Открытые функции
| QShortcut(const QKeySequence &key, QWidget *parent, const char *member = nullptr, const char *ambiguousMember = nullptr, Qt::ShortcutContext context = Qt::WindowShortcut) | |
| QShortcut(QWidget *parent) | |
| 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 |
Сигналы
| void | activated() |
| void | activatedAmbiguously() |
Подробное описание
Класс 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(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.
QShortcut::QShortcut(QWidget *parent)
Создает объект QShortcut для виджета parent. Поскольку последовательность клавиш не указана, сочетание клавиш не будет излучать никаких сигналов.
См. также setKey().
[signal] void QShortcut::activated()
Этот сигнал излучается, когда пользователь вводит последовательность клавиш сочетания.
См. также activatedAmbiguously().
[signal] void QShortcut::activatedAmbiguously()
Когда последовательность клавиш вводится на клавиатуре, она считается неоднозначной, пока она соответствует началу более чем одного сочетания клавиш.
Когда последовательность клавиш сочетания завершена, activatedAmbiguously() излучается, если последовательность клавиш по-прежнему неоднозначна (т.е., она является началом одной или нескольких других последовательностей сочетаний клавиш). В этом случае сигнал activated() не излучается.
См. также activated().
[virtual] QShortcut::~QShortcut()
Уничтожает сочетание клавиш.
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.13/qshortcut.html