Spec-Zone.ru › Qt 5.15

Класс QShortcut

Класс QShortcut используется для создания сочетаний клавиш. Подробнее...

Заголовок: #include <QShortcut>
qmake: QT += widgets
Наследует: QObject
  • Список всех членов, включая наследуемые

Свойства

  • autoRepeat : bool
  • context : Qt::ShortcutContext
  • enabled : bool
  • key : QKeySequence
  • whatsThis : QString

Публичные функции

QShortcut(const QKeySequence &key, QWidget *parent, const char *member = nullptr, const char *ambiguousMember = nullptr, Qt::ShortcutContext shortcutContext = 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

Это свойство определяет, может ли сочетание клавиш автоматически повторяться.

Если значение истинно, сочетание клавиш будет автоматически повторяться, когда пользователь удерживает комбинацию клавиш, при условии, что автоматическое повторение клавиш включено в системе. Значение по умолчанию — истинно.

Это свойство было добавлено в 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 shortcutContext = Qt::WindowShortcut)

Создаёт объект QShortcut для виджета parent. Сочетание клавиш работает с его родителем, прослушивая события QShortcutEvent, соответствующие последовательности клавиш key. В зависимости от неоднозначности события, сочетание клавиш вызовет функцию member или функцию ambiguousMember, если нажатие клавиш было в контексте сочетания клавиш shortcutContext.

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.15/qshortcut.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API