Класс 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() сокращения к функтору.
Функтор может быть указателем на член-функцию объекта context.
Если объект context уничтожен, функтор не будет вызван.
Эта функция была введена в 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 для parent, который должен быть объектом 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
Возвращает ID основного сочетания клавиш.
См. также 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)
Устанавливает подсказку "Что это?" (What's This?) для сокращения, текст text.
Текст будет отображаться, когда приложение виджета находится в режиме "Что это?" и пользователь вводит последовательность клавиш сокращения key().
Чтобы установить подсказку "Что это?" для элемента меню (с или без сочетания клавиш), установите подсказку для действия элемента.
По умолчанию текст подсказки — пустая строка.
Эта функция не оказывает никакого влияния на приложения, не использующие виджеты.
См. также whatsThis(), QWhatsThis::inWhatsThisMode(), и QAction::setWhatsThis().
QString QShortcut::whatsThis() const
Возвращает текст подсказки "Что это?" (What's This?) для сокращения.
См. также setWhatsThis().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qshortcut.html