Spec-Zone.ru › Qt 5.14

Класс 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 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.

END_OF_DOCUMENT_MARKER

Документация свойств

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

Spec-Zone.ru

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