Класс 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.
В приложениях с виджетами некоторые виджеты могут использовать символ '&' перед символом. Это автоматически создаст мнемоническое сочетание (сочетание клавиш) для этого символа, например, «Вых&од» создаст сочетание клавиш 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.
END_OF_DOCUMENT_MARKERДокументация свойств
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 для parent, который должен быть QWindow или QWidget.
Сокращение работает со своим родителем, прослушивая события QShortcutEvent, соответствующие последовательности клавиш key. В зависимости от неоднозначности события, сокращение вызовет функцию member или функцию ambiguousMember, если нажатие клавиши произошло в context сокращения.
QShortcut::QShortcut(QObject *parent)
Создаёт объект QShortcut для parent, который должен быть 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.0/qshortcut.html