Spec-Zone.ru › Qt 5.6

Класс QShortcut

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

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

Свойства

  • autoRepeat : bool
  • context : Qt::ShortcutContext
  • enabled : bool
  • key : QKeySequence
  • whatsThis : QString
  • 1 свойство унаследовано от QObject

Открытые функции

QShortcut(QWidget *parent)
QShortcut(const QKeySequence &key, QWidget *parent, const char *member = Q_NULLPTR, const char *ambiguousMember = Q_NULLPTR, Qt::ShortcutContext context = Qt::WindowShortcut)
~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
  • 31 открытая функция унаследована от QObject

Сигналы

void activated()
void activatedAmbiguously()
  • 2 сигнала унаследованы от QObject

Дополнительные унаследованные члены

  • 1 открытый слот унаследован от QObject
  • 11 статические открытые члены унаследованы от QObject
  • 9 защищенные функции унаследованы от QObject

Подробное описание

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

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

Это свойство было добавлено в 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(QWidget *parent)

Создаёт объект QShortcut для виджета parent. Так как последовательность клавиш не указана, сочетание клавиш не будет генерировать сигналы.

См. также setKey().

QShortcut::QShortcut(const QKeySequence &key, QWidget *parent, const char *member = Q_NULLPTR, const char *ambiguousMember = Q_NULLPTR, Qt::ShortcutContext context = Qt::WindowShortcut)

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

QShortcut::~QShortcut()

Уничтожает сочетание клавиш.

void QShortcut::activated()

Этот сигнал испускается при вводе пользователем последовательности клавиш сочетания.

См. также activatedAmbiguously().

void QShortcut::activatedAmbiguously()

Когда последовательность клавиш вводится с клавиатуры, она считается неоднозначной, пока соответствует началу более чем одного сочетания клавиш.

Когда последовательность клавиш сочетания завершена, activatedAmbiguously() испускается, если последовательность клавиш по-прежнему неоднозначна (т.е., она является началом одной или нескольких других последовательностей). В этом случае сигнал activated() не испускается.

См. также activated().

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/archives/qt-5.6/qshortcut.html

Spec-Zone.ru

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