Класс QShortcut
Класс QShortcut используется для создания сочетаний клавиш. Подробнее...
| Заголовок: | #include <QShortcut> |
| CMake: | find_package(Qt6 COMPONENTS Gui REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| Наследуется от: | QObject |
Свойства
- autoRepeat : bool
- context : Qt::ShortcutContext
- enabled : bool
- key : QKeySequence
Открытые функции
| QShortcut(QKeySequence::StandardKey key, QObject *parent, const QObject *context1, Functor functor, const QObject *context2, FunctorAmbiguous functorAmbiguous, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut) | |
| QShortcut(QKeySequence::StandardKey key, QObject *parent, const QObject *context, Functor functor, FunctorAmbiguous functorAmbiguous, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut) | |
| QShortcut(QKeySequence::StandardKey key, QObject *parent, const QObject *context, Functor functor, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut) | |
| QShortcut(QKeySequence::StandardKey key, QObject *parent, Functor functor, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut) | |
| QShortcut(const QKeySequence &key, QObject *parent, const QObject *context1, Functor functor, const QObject *context2, FunctorAmbiguous functorAmbiguous, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut) | |
| QShortcut(const QKeySequence &key, QObject *parent, const QObject *context, Functor functor, FunctorAmbiguous functorAmbiguous, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut) | |
| QShortcut(const QKeySequence &key, QObject *parent, const QObject *context, Functor functor, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut) | |
| QShortcut(const QKeySequence &key, QObject *parent, Functor functor, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut) | |
| QShortcut(QKeySequence::StandardKey standardKey, QObject *parent, const char *member = nullptr, const char *ambiguousMember = nullptr, Qt::ShortcutContext context = Qt::WindowShortcut) | |
| QShortcut(const QKeySequence &key, QObject *parent, const char *member = nullptr, const char *ambiguousMember = nullptr, Qt::ShortcutContext context = Qt::WindowShortcut) | |
| QShortcut(QObject *parent) | |
| virtual | ~QShortcut() |
| bool | autoRepeat() const |
| Qt::ShortcutContext | context() const |
| int | id() const |
| bool | isEnabled() const |
| QKeySequence | key() const |
| QList<QKeySequence> | keys() const |
| QWidget * | parentWidget() const |
| void | setAutoRepeat(bool on) |
| void | setContext(Qt::ShortcutContext context) |
| void | setEnabled(bool enable) |
| void | setKey(const QKeySequence &key) |
| void | setKeys(QKeySequence::StandardKey key) |
| void | setKeys(const QList<QKeySequence> &keys) |
| 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.
Функции доступа:
| 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) |
Документация по функциям-членам
[since 6.0] template <typename Functor, typename FunctorAmbiguous> QShortcut::QShortcut(QKeySequence::StandardKey key, QObject *parent, const QObject *context1, Functor functor, const QObject *context2, FunctorAmbiguous functorAmbiguous, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)
Это перегруженная функция.
Это удобный конструктор QShortcut, который подключает сигнал activated() сочетания клавиш к functor, а сигнал activatedAmbiguously() — к functorAmbiguous.
Functor может быть указателем на член-функцию объекта context1. FunctorAmbiguous может быть указателем на член-функцию объекта context2.
Если объект context1 уничтожен, functor не будет вызван. Если объект context2 уничтожен, functorAmbiguous не будет вызван.
Эта функция была добавлена в Qt 6.0.
[since 6.0] template <typename Functor, typename FunctorAmbiguous> QShortcut::QShortcut(QKeySequence::StandardKey key, QObject *parent, const QObject *context, Functor functor, FunctorAmbiguous functorAmbiguous, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)
Это перегруженная функция.
Это удобный конструктор QShortcut, который подключает сигнал activated() сочетания клавиш к functor, а сигнал activatedAmbiguously() — к functorAmbiguous.
Functor и functorAmbiguous могут быть указателями на член-функцию объекта context.
Если объект context уничтожен, functor и functorAmbiguous не будут вызваны.
Эта функция была добавлена в Qt 6.0.
[since 6.0] template <typename Functor> QShortcut::QShortcut(QKeySequence::StandardKey key, QObject *parent, const QObject *context, Functor functor, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)
Это перегруженная функция.
Это удобный конструктор QShortcut, который подключает сигнал activated() сочетания клавиш к functor.
Functor может быть указателем на член-функцию объекта context.
Если объект context уничтожен, functor не будет вызван.
Эта функция была добавлена в Qt 6.0.
[since 6.0] template <typename Functor> QShortcut::QShortcut(QKeySequence::StandardKey key, QObject *parent, Functor functor, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)
Это перегруженная функция.
Это удобный конструктор QShortcut, который подключает сигнал activated() сочетания клавиш к functor.
Эта функция была добавлена в Qt 6.0.
[since 5.15] template <typename Functor, typename FunctorAmbiguous> QShortcut::QShortcut(const QKeySequence &key, QObject *parent, const QObject *context1, Functor functor, const QObject *context2, FunctorAmbiguous functorAmbiguous, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)
Это перегруженная функция.
Это удобный конструктор QShortcut, который подключает сигнал activated() сочетания клавиш к functor, а сигнал activatedAmbiguously() — к functorAmbiguous.
Functor может быть указателем на член-функцию объекта context1. FunctorAmbiguous может быть указателем на член-функцию объекта context2.
Если объект context1 уничтожен, functor не будет вызван. Если объект context2 уничтожен, functorAmbiguous не будет вызван.
Эта функция была добавлена в Qt 5.15.
[since 5.15] template <typename Functor, typename FunctorAmbiguous> QShortcut::QShortcut(const QKeySequence &key, QObject *parent, const QObject *context, Functor functor, FunctorAmbiguous functorAmbiguous, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)
Это перегруженная функция.
Это удобный конструктор QShortcut, который подключает сигнал activated() сочетания клавиш к functor, а сигнал activatedAmbiguously() — к functorAmbiguous.
Functor и functorAmbiguous могут быть указателями на член-функцию объекта context.
Если объект context уничтожен, functor и functorAmbiguous не будут вызваны.
Эта функция была добавлена в Qt 5.15.
[since 5.15] template <typename Functor> QShortcut::QShortcut(const QKeySequence &key, QObject *parent, const QObject *context, Functor functor, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)
Это перегруженная функция.
Это удобный конструктор QShortcut, который подключает сигнал activated() ярлыка к функтору.
Функтор может быть указателем на член-функцию объекта контекста.
Если объект контекста уничтожен, функтор не будет вызван.
Эта функция была введена в Qt 5.15.
[since 5.15] template <typename Functor> QShortcut::QShortcut(const QKeySequence &key, QObject *parent, Functor functor, Qt::ShortcutContext shortcutContext = Qt::WindowShortcut)
Это перегруженная функция.
Это удобный конструктор QShortcut, который подключает сигнал activated() ярлыка к функтору.
Эта функция была введена в Qt 5.15.
[since 6.0] QShortcut::QShortcut(QKeySequence::StandardKey standardKey, QObject *parent, const char *member = nullptr, const char *ambiguousMember = nullptr, Qt::ShortcutContext context = Qt::WindowShortcut)
Создаёт объект QShortcut для родителя, который должен быть QWindow или QWidget.
Ярлык работает с родителем, прослушивая QShortcutEvent которые соответствуют standardKey. В зависимости от неоднозначности события, ярлык вызовет функцию member или функцию ambiguousMember, если нажатие клавиши произошло в контексте context ярлыка.
Эта функция была введена в Qt 6.0.
QShortcut::QShortcut(const QKeySequence &key, QObject *parent, const char *member = nullptr, const char *ambiguousMember = nullptr, Qt::ShortcutContext context = Qt::WindowShortcut)
Создаёт объект QShortcut для родителя, который должен быть QWindow или QWidget.
Ярлык работает с родителем, прослушивая QShortcutEvent которые соответствуют последовательности клавиш key. В зависимости от неоднозначности события, ярлык вызовет функцию member или функцию ambiguousMember, если нажатие клавиши произошло в контексте context ярлыка.
QShortcut::QShortcut(QObject *parent)
Создаёт объект QShortcut для родителя, который должен быть QWindow или QWidget.
Поскольку последовательность клавиш ярлыка не указана, ярлык не будет генерировать никаких сигналов.
См. также setKey().
[signal] void QShortcut::activated()
Этот сигнал генерируется, когда пользователь вводит последовательность клавиш ярлыка.
См. также activatedAmbiguously().
[signal] void QShortcut::activatedAmbiguously()
Когда последовательность клавиш вводится с клавиатуры, она считается неоднозначной, если она совпадает с началом более чем одного ярлыка.
Когда последовательность клавиш ярлыка завершена, activatedAmbiguously() генерируется, если последовательность клавиш всё ещё неоднозначна (т.е. является началом одной или нескольких других последовательностей). В этом случае сигнал activated() не генерируется.
См. также activated().
[virtual] QShortcut::~QShortcut()
Уничтожает ярлык.
int QShortcut::id() const
Возвращает идентификатор первичной привязки клавиш.
См. также QShortcutEvent::shortcutId().
[since 6.0] QList<QKeySequence> QShortcut::keys() const
Возвращает список последовательностей клавиш, которые запускают этот ярлык.
Эта функция была введена в Qt 6.0.
QWidget *QShortcut::parentWidget() const
Возвращает виджет-родитель ярлыка.
[since 6.0] void QShortcut::setKeys(QKeySequence::StandardKey key)
Устанавливает триггеры, соответствующие стандартной клавише key.
Эта функция была введена в Qt 6.0.
[since 6.0] void QShortcut::setKeys(const QList<QKeySequence> &keys)
Устанавливает keys как список последовательностей клавиш, которые запускают ярлык.
Эта функция была введена в Qt 6.0.
void QShortcut::setWhatsThis(const QString &text)
Устанавливает подсказку "Что это?" для ярлыка.
Текст будет показан, когда приложение виджета находится в режиме "Что это?" и пользователь вводит последовательность клавиш key().
Для установки подсказки "Что это?" для элемента меню (с или без клавиши ярлыка) установите подсказку для действия элемента.
По умолчанию текст подсказки — пустая строка.
Эта функция не оказывает никакого эффекта в приложениях, которые не используют виджеты.
См. также whatsThis(), QWhatsThis::inWhatsThisMode(), и QAction::setWhatsThis().
QString QShortcut::whatsThis() const
Возвращает текст подсказки "Что это?" для ярлыка.
См. также setWhatsThis().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qshortcut.html