Класс QKeySequence
Класс QKeySequence инкапсулирует последовательность нажатий клавиш, используемых в сочетаниях клавиш. Подробнее...
| Заголовок: | #include <QKeySequence> |
| qmake: | QT += gui |
Типы публичного доступа
| перечисление | SequenceFormat { NativeText, PortableText } |
| перечисление | SequenceMatch { NoMatch, PartialMatch, ExactMatch } |
| перечисление | StandardKey { AddTab, Back, Backspace, Bold, Close, …, Cancel } |
Функции публичного доступа
| QKeySequence(QKeySequence::StandardKey key) | |
| QKeySequence(const QKeySequence &keysequence) | |
| QKeySequence(int k1, int k2 = 0, int k3 = 0, int k4 = 0) | |
| QKeySequence(const QString &key, QKeySequence::SequenceFormat format = NativeText) | |
| QKeySequence() | |
| QKeySequence & | operator=(QKeySequence &&other) |
| QKeySequence & | operator=(const QKeySequence &other) |
| ~QKeySequence() | |
| int | count() const |
| bool | isEmpty() const |
| QKeySequence::SequenceMatch | matches(const QKeySequence &seq) const |
| void | swap(QKeySequence &other) |
| QString | toString(QKeySequence::SequenceFormat format = PortableText) const |
| QVariant | operator QVariant() const |
| bool | operator!=(const QKeySequence &other) const |
| bool | operator<(const QKeySequence &other) const |
| bool | operator<=(const QKeySequence &other) const |
| bool | operator==(const QKeySequence &other) const |
| bool | operator>(const QKeySequence &other) const |
| bool | operator>=(const QKeySequence &other) const |
| int | operator[](uint index) const |
Статические члены публичного доступа
| QKeySequence | fromString(const QString &str, QKeySequence::SequenceFormat format = PortableText) |
| QList<QKeySequence> | keyBindings(QKeySequence::StandardKey key) |
| QList<QKeySequence> | listFromString(const QString &str, QKeySequence::SequenceFormat format = PortableText) |
| QString | listToString(const QList<QKeySequence> &list, QKeySequence::SequenceFormat format = PortableText) |
| QKeySequence | mnemonic(const QString &text) |
Связанные нечлены
| void | qt_set_sequence_auto_mnemonic(bool b) |
| QDataStream & | operator<<(QDataStream &stream, const QKeySequence &sequence) |
| QDataStream & | operator>>(QDataStream &stream, QKeySequence &sequence) |
Подробное описание
В наиболее общем случае последовательность нажатий клавиш описывает комбинацию клавиш, которые необходимо нажать вместе для выполнения некоторого действия. Последовательности нажатий клавиш используются с объектами QAction для указания сочетаний клавиш, которые могут быть использованы для запуска действий.
Последовательности нажатий клавиш можно создавать для использования в качестве сочетаний клавиш тремя различными способами:
- Для стандартных сочетаний клавиш можно использовать стандартную клавишу стандартную клавишу, чтобы запросить платформозависимую последовательность нажатий клавиш, связанную с каждым сочетанием клавиш.
- Для пользовательских сочетаний клавиш можно использовать удобочитаемые строки, такие как "Ctrl+X", и их можно перевести в соответствующие сочетания клавиш для пользователей разных языков. Переводы выполняются в контексте "QShortcut".
- Для жёстко заданных сочетаний клавиш можно указать целые коды клавиш с комбинацией значений, определённых в перечислениях Qt::Key и Qt::Modifier. Каждый код клавиши состоит из одного значения Qt::Key и нуля или более модификаторов, таких как Qt::SHIFT, Qt::CTRL, Qt::ALT и Qt::META.
Например, Ctrl P может быть последовательностью, используемой в качестве сочетания клавиш для печати документа, и её можно указать любым из следующих способов:
QKeySequence(QKeySequence::Print);
QKeySequence(tr("Ctrl+P"));
QKeySequence(tr("Ctrl+p"));
QKeySequence(Qt::CTRL + Qt::Key_P); Обратите внимание, что для букв регистр, используемый в строке спецификации, не имеет значения. В приведённых выше примерах пользователю не нужно удерживать клавишу Shift, чтобы активировать сочетание клавиш, указанное с помощью "Ctrl+P". Однако для других клавиш использование Shift в качестве неопределённого дополнительного модификатора может привести к путанице для пользователей с раскладками клавиатуры, отличными от используемых разработчиками. Подробнее об этом см. раздел Вопросы раскладки клавиатуры ниже.
В идеале следует использовать стандартные сочетания клавиш, где это возможно. При создании последовательностей нажатий клавиш для нестандартных сочетаний клавиш следует использовать удобочитаемые строки вместо жёстко заданных целых значений.
Объекты QKeySequence можно привести к типу QString, чтобы получить удобочитаемую переведённую версию последовательности. Аналогично, функция toString() создаёт удобочитаемые строки для использования в меню. В macOS используются соответствующие символы для описания сочетаний клавиш с помощью специальных клавиш на клавиатуре Macintosh.
Альтернативный способ указания жёстко заданных кодов клавиш — использование кода Юникода символа; например, 'A' даёт такую же последовательность нажатий клавиш, как и Qt::Key_A.
Примечание: В macOS ссылки на "Ctrl", Qt::CTRL, Qt::Key_Control и Qt::ControlModifier соответствуют клавишам Command на клавиатуре Macintosh, а ссылки на "Meta", Qt::META, Qt::Key_Meta и Qt::MetaModifier соответствуют клавишам Control. Разработчики в macOS могут использовать одни и те же описания сочетаний клавиш на всех платформах, и их приложения будут работать так, как ожидается, в macOS.
Стандартные сочетания клавиш
QKeySequence определяет множество стандартных сочетаний клавиш, чтобы уменьшить усилия, необходимые при настройке действий в типичном приложении. Таблица ниже показывает некоторые распространенные сочетания клавиш, которые часто используются для этих стандартных сочетаний клавиш приложениями на четырёх широко используемых платформах. Обратите внимание, что на macOS значение Ctrl соответствует клавишам Command на клавиатуре Macintosh, а значение Meta соответствует клавишам Control.
| StandardKey | Windows | macOS | KDE Plasma | GNOME |
|---|---|---|---|---|
| HelpContents | F1 | Ctrl+? | F1 | F1 |
| WhatsThis | Shift+F1 | Shift+F1 | Shift+F1 | Shift+F1 |
| Открыть | Ctrl+O | Ctrl+O | Ctrl+O | Ctrl+O |
| Закрыть | Ctrl+F4, Ctrl+W | Ctrl+W, Ctrl+F4 | Ctrl+W | Ctrl+W |
| Сохранить | Ctrl+S | Ctrl+S | Ctrl+S | Ctrl+S |
| Выход | Ctrl+Q | Ctrl+Q | Ctrl+Q | |
| Сохранить как | Ctrl+Shift+S | Ctrl+Shift+S | ||
| Новый | Ctrl+N | Ctrl+N | Ctrl+N | Ctrl+N |
| Удалить | Del | Del, Meta+D | Del, Ctrl+D | Del, Ctrl+D |
| Вырезать | Ctrl+X, Shift+Del | Ctrl+X, Meta+K | Ctrl+X, F20, Shift+Del | Ctrl+X, F20, Shift+Del |
| Копировать | Ctrl+C, Ctrl+Ins | Ctrl+C | Ctrl+C, F16, Ctrl+Ins | Ctrl+C, F16, Ctrl+Ins |
| Вставить | Ctrl+V, Shift+Ins | Ctrl+V, Meta+Y | Ctrl+V, F18, Shift+Ins | Ctrl+V, F18, Shift+Ins |
| Настройки | Ctrl+, | |||
| Отменить | Ctrl+Z, Alt+Backspace | Ctrl+Z | Ctrl+Z, F14 | Ctrl+Z, F14 |
| Повторить | Ctrl+Y, Shift+Ctrl+Z, Alt+Shift+Backspace | Ctrl+Shift+Z | Ctrl+Shift+Z | Ctrl+Shift+Z |
| Назад | Alt+Left, Backspace | Ctrl+[ | Alt+Left | Alt+Left |
| Вперед | Alt+Right, Shift+Backspace | Ctrl+] | Alt+Right | Alt+Right |
| Обновить | F5 | F5 | F5 | Ctrl+R, F5 |
| Увеличить масштаб | Ctrl+Plus | Ctrl+Plus | Ctrl+Plus | Ctrl+Plus |
| Уменьшить масштаб | Ctrl+Minus | Ctrl+Minus | Ctrl+Minus | Ctrl+Minus |
| Полный экран | F11, Alt+Enter | Ctrl+Meta+F | F11, Ctrl+Shift+F | Ctrl+F11 |
| Печать | Ctrl+P | Ctrl+P | Ctrl+P | Ctrl+P |
| Добавить вкладку | Ctrl+T | Ctrl+T | Ctrl+Shift+N, Ctrl+T | Ctrl+T |
| Следующий элемент | Ctrl+Tab, Вперед, Ctrl+F6 | Ctrl+}, Вперед, Ctrl+Tab | Ctrl+Tab, Вперед, Ctrl+Comma | Ctrl+Tab, Вперед |
| Предыдущий элемент | Ctrl+Shift+Tab, Назад, Ctrl+Shift+F6 | Ctrl+{, Назад, Ctrl+Shift+Tab | Ctrl+Shift+Tab, Назад, Ctrl+Period | Ctrl+Shift+Tab, Назад |
| Найти | Ctrl+F | Ctrl+F | Ctrl+F | Ctrl+F |
| Следующий результат поиска | F3, Ctrl+G | Ctrl+G | F3 | Ctrl+G, F3 |
| Предыдущий результат поиска | Shift+F3, Ctrl+Shift+G | Ctrl+Shift+G | Shift+F3 | Ctrl+Shift+G, Shift+F3 |
| Заменить | Ctrl+H | (нет) | Ctrl+R | Ctrl+H |
| Выделить всё | Ctrl+A | Ctrl+A | Ctrl+A | Ctrl+A |
| Отменить выделение | Ctrl+Shift+A | Ctrl+Shift+A | ||
| Жирным шрифтом | Ctrl+B | Ctrl+B | Ctrl+B | Ctrl+B |
| Курсивом | Ctrl+I | Ctrl+I | Ctrl+I | Ctrl+I |
| Подчёркнуто | Ctrl+U | Ctrl+U | Ctrl+U | Ctrl+U |
| К следующему символу | Вправо | Вправо, Meta+F | Вправо | Вправо |
| К предыдущему символу | Влево | Влево, Meta+B | Влево | Влево |
| К следующему слову | Ctrl+Вправо | Alt+Вправо | Ctrl+Вправо | Ctrl+Вправо |
| К предыдущему слову | Ctrl+Влево | Alt+Влево | Ctrl+Влево | Ctrl+Влево |
| К следующей строке | Вниз | Вниз, Meta+N | Вниз | Вниз |
| К предыдущей строке | Вверх | Вверх, Meta+P | Вверх | Вверх |
| К следующей странице | PgDown | PgDown, Alt+PgDown, Meta+Вниз, Meta+PgDown, Meta+V | PgDown | PgDown |
| К предыдущей странице | PgUp | PgUp, Alt+PgUp, Meta+Вверх, Meta+PgUp | PgUp | PgUp |
| В начало строки | Home | Ctrl+Влево, Meta+Влево | Home | Home |
| В конец строки | End | Ctrl+Вправо, Meta+Вправо | End, Ctrl+E | End, Ctrl+E |
| В начало блока | (нет) | Alt+Вверх, Meta+A | (нет) | (нет) |
| В конец блока | (нет) | Alt+Вниз, Meta+E | (нет) | (нет) |
| В начало документа | Ctrl+Home | Ctrl+Вверх, Home | Ctrl+Home | Ctrl+Home |
| В конец документа | Ctrl+End | Ctrl+Вниз, End | Ctrl+End | Ctrl+End |
| Выделить следующий символ | Shift+Вправо | Shift+Вправо | Shift+Вправо | Shift+Вправо |
| Выделить предыдущий символ | Shift+Влево | Shift+Влево | Shift+Влево | Shift+Влево |
| Выделить следующее слово | Ctrl+Shift+Вправо | Alt+Shift+Вправо | Ctrl+Shift+Вправо | Ctrl+Shift+Вправо |
| Выделить предыдущее слово | Ctrl+Shift+Влево | Alt+Shift+Влево | Ctrl+Shift+Влево | Ctrl+Shift+Влево |
| Выделить следующую строку | Shift+Вниз | Shift+Вниз | Shift+Вниз | Shift+Вниз |
| Выделить предыдущую строку | Shift+Вверх | Shift+Вверх | Shift+Вверх | Shift+Вверх |
| Выделить следующую страницу | Shift+PgDown | Shift+PgDown | Shift+PgDown | Shift+PgDown |
| Выделить предыдущую страницу | Shift+PgUp | Shift+PgUp | Shift+PgUp | Shift+PgUp |
| Выделить начало строки | Shift+Home | Ctrl+Shift+Влево | Shift+Home | Shift+Home |
| Выделить конец строки | Shift+End | Ctrl+Shift+Вправо | Shift+End | Shift+End |
| Выделить начало блока | (нет) | Alt+Shift+Вверх, Meta+Shift+A | (нет) | (нет) |
| Выделить конец блока | (нет) | Alt+Shift+Вниз, Meta+Shift+E | (нет) | (нет) |
| Выделить начало документа | Ctrl+Shift+Home | Ctrl+Shift+Вверх, Shift+Home | Ctrl+Shift+Home | Ctrl+Shift+Home |
| Выделить конец документа | Ctrl+Shift+End | Ctrl+Shift+Вниз, Shift+End | Ctrl+Shift+End | Ctrl+Shift+End |
| Удалить начало слова | Ctrl+Backspace | Alt+Backspace | Ctrl+Backspace | Ctrl+Backspace |
| Удалить конец слова | Ctrl+Del | (нет) | Ctrl+Del | Ctrl+Del |
| Удалить конец строки | (нет) | (нет) | Ctrl+K | Ctrl+K |
| Удалить всю строку | (нет) | (нет) | Ctrl+U | Ctrl+U |
| Вставить разделитель абзацев | Enter | Enter | Enter | Enter |
| Вставить разделитель строк | Shift+Enter | Meta+Enter, Meta+O | Shift+Enter | Shift+Enter |
| Backspace | (нет) | Meta+H | (нет) | (нет) |
| Отмена | Escape | Escape, Ctrl+. | Escape | Escape |
Обратите внимание, что, поскольку последовательности клавиш, используемые для стандартных сочетаний клавиш, различаются между платформами, вам все равно необходимо протестировать свои сочетания клавиш на каждой платформе, чтобы убедиться, что вы не случайно назначили одну и ту же последовательность клавиш для многих действий.
Проблемы с раскладкой клавиатуры
Многие спецификации последовательностей клавиш выбираются разработчиками на основе раскладки определенных типов клавиатуры, а не выбора клавиш, представляющих первую букву имени действия, например, Ctrl S («Ctrl+S») или Ctrl C («Ctrl+C»). Кроме того, поскольку некоторые символы могут быть введены только с помощью клавиш модификаторов на определенных раскладках клавиатуры, последовательности клавиш, предназначенные для использования с одной раскладкой клавиатуры, могут отображаться на другой клавише, вообще не отображаться или потребовать использования дополнительной клавиши модификатора при использовании другой раскладки клавиатуры.
Например, сочетания клавиш Ctrl плюс и Ctrl минус часто используются в качестве сочетаний клавиш для операций масштабирования в графических приложениях, и они могут быть указаны соответственно как «Ctrl++» и «Ctrl+-». Однако способ указания и интерпретации этих сочетаний клавиш зависит от раскладки клавиатуры. Пользователи норвежских клавиатур заметят, что клавиши + и - не находятся рядом на клавиатуре, но все равно смогут активировать оба сочетания клавиш без необходимости нажатия клавиши Shift. Однако пользователям британских клавиатур потребуется удерживать клавишу Shift для ввода символа +, что делает сочетание клавиш фактически таким же, как «Ctrl+Shift+=".
Хотя некоторые разработчики могут прибегнуть к полному указанию всех модификаторов, используемых на их клавиатуре для активации сочетания клавиш, это также приведет к неожиданному поведению для пользователей с различными раскладками клавиатуры.
Например, разработчик, использующий британскую клавиатуру, может решить указать «Ctrl+Shift+» в качестве последовательности клавиш, чтобы создать сочетание клавиш, которое случайно ведет себя так же, как Ctrl плюс. Однако клавиша = должна быть доступна с помощью клавиши Shift на норвежской клавиатуре, что делает необходимое сочетание клавиш фактически Ctrl Shift Shift = (невозможное сочетание клавиш).
В результате как удобочитаемые строки, так и жестко закодированные коды клавиш могут быть проблематичными при указании последовательности клавиш, которая может использоваться на различных раскладках клавиатуры. Только использование стандартных сочетаний клавиш гарантирует, что пользователь сможет использовать сочетания клавиш, которые разработчик намеревался использовать.
Несмотря на это, мы можем решить эту проблему, гарантируя, что используются удобочитаемые строки, что позволит осуществить перевод последовательностей клавиш для пользователей разных языков. Этот подход будет успешным для пользователей, чьи клавиатуры имеют наиболее типичную для их языка раскладку.
Сочетания клавиш в стиле GNU Emacs
Сочетания клавиш, аналогичные используемым в GNU Emacs, позволяющие использовать до четырех кодов клавиш, можно создавать, используя конструктор с несколькими аргументами или передавая удобочитаемую строку с запятыми последовательностей клавиш.
Например, последовательность клавиш Ctrl X, за которой следует Ctrl C, можно указать одним из следующих способов:
QKeySequence(tr("Ctrl+X, Ctrl+C"));
QKeySequence(Qt::CTRL + Qt::Key_X, Qt::CTRL + Qt::Key_C); Предупреждение: экземпляр QApplication должен быть создан до создания QKeySequence; в противном случае ваше приложение может зависнуть.
См. также QShortcut.
Документация по типам элементов
перечисление QKeySequence::SequenceFormat
| Постоянная | Значение | Описание |
|---|---|---|
QKeySequence::NativeText |
0 |
Последовательность клавиш в виде платформозависимой строки. Это означает, что она будет отображаться в переведенном виде, а на Mac она будет напоминать последовательность клавиш из строки меню. Это перечисление лучше использовать, когда вы хотите отобразить строку пользователю. |
QKeySequence::PortableText |
1 |
Последовательность клавиш задается в «портативном» формате, подходящем для чтения и записи в файл. Во многих случаях она будет выглядеть аналогично исходному тексту в Windows и X11. |
перечисление QKeySequence::SequenceMatch
| Постоянная | Значение | Описание |
|---|---|---|
QKeySequence::NoMatch |
0 |
Последовательности клавиш разные; даже частичное совпадение отсутствует. |
QKeySequence::PartialMatch |
1 |
Последовательности клавиш частично совпадают, но не идентичны. |
QKeySequence::ExactMatch |
2 |
Последовательности клавиш идентичны. |
перечисление QKeySequence::StandardKey
Это перечисление представляет стандартные сочетания клавиш. Они могут использоваться для назначения платформозависимых сочетаний клавиш действию QAction.
Обратите внимание, что сочетания клавиш зависят от платформы. Текущие привязанные сочетания клавиш можно запросить с помощью keyBindings().
| Постоянная | Значение | Описание |
|---|---|---|
QKeySequence::AddTab |
19 |
Добавить новую вкладку. |
QKeySequence::Back |
13 |
Навигация назад. |
QKeySequence::Backspace |
69 |
Удалить предыдущий символ. |
QKeySequence::Bold |
27 |
Жирный текст. |
QKeySequence::Close |
4 |
Закрыть документ/вкладку. |
QKeySequence::Copy |
9 |
Копировать. |
QKeySequence::Cut |
8 |
Вырезать. |
QKeySequence::Delete |
7 |
Удалить. |
QKeySequence::DeleteEndOfLine |
60 |
Удалить конец строки. |
QKeySequence::DeleteEndOfWord |
59 |
Удалить слово от конца курсора. |
QKeySequence::DeleteStartOfWord |
58 |
Удалить начало слова до курсора. |
QKeySequence::DeleteCompleteLine |
68 |
Удалить всю строку. |
QKeySequence::Find |
22 |
Найти в документе. |
QKeySequence::FindNext |
23 |
Найти следующий результат. |
QKeySequence::FindPrevious |
24 |
Найти предыдущий результат. |
QKeySequence::Forward |
14 |
Навигация вперед. |
QKeySequence::HelpContents |
1 |
Открыть содержание справки. |
QKeySequence::InsertLineSeparator |
62 |
Вставить новую строку. |
QKeySequence::InsertParagraphSeparator |
61 |
Вставить новый абзац. |
QKeySequence::Italic |
28 |
Курсивный текст. |
QKeySequence::MoveToEndOfBlock |
41 |
Переместить курсор в конец блока. Этот ярлык используется только на macOS. |
QKeySequence::MoveToEndOfDocument |
43 |
Переместить курсор в конец документа. |
QKeySequence::MoveToEndOfLine |
39 |
Переместить курсор в конец строки. |
QKeySequence::MoveToNextChar |
30 |
Переместить курсор к следующему символу. |
QKeySequence::MoveToNextLine |
34 |
Переместить курсор к следующей строке. |
QKeySequence::MoveToNextPage |
36 |
Переместить курсор к следующей странице. |
QKeySequence::MoveToNextWord |
32 |
Переместить курсор к следующему слову. |
QKeySequence::MoveToPreviousChar |
31 |
Переместить курсор к предыдущему символу. |
QKeySequence::MoveToPreviousLine |
35 |
Переместить курсор к предыдущей строке. |
QKeySequence::MoveToPreviousPage |
37 |
Переместить курсор к предыдущей странице. |
QKeySequence::MoveToPreviousWord |
33 |
Переместить курсор к предыдущему слову. |
QKeySequence::MoveToStartOfBlock |
40 |
Переместить курсор в начало блока. Этот ярлык используется только на macOS. |
QKeySequence::MoveToStartOfDocument |
42 |
Переместить курсор в начало документа. |
QKeySequence::MoveToStartOfLine |
38 |
Переместить курсор в начало строки. |
QKeySequence::New |
6 |
Создать новый документ. |
QKeySequence::NextChild |
20 |
Перейти к следующей вкладке или дочернему окну. |
QKeySequence::Open |
3 |
Открыть документ. |
QKeySequence::Paste |
10 |
Вставить. |
QKeySequence::Preferences |
64 |
Открыть диалог настроек. |
QKeySequence::PreviousChild |
21 |
Перейти к предыдущей вкладке или дочернему окну. |
QKeySequence::Print |
18 |
Печать документа. |
QKeySequence::Quit |
65 |
Выход из приложения. |
QKeySequence::Redo |
12 |
Повторить. |
QKeySequence::Refresh |
15 |
Обновить или перезагрузить текущий документ. |
QKeySequence::Replace |
25 |
Найти и заменить. |
QKeySequence::SaveAs |
63 |
Сохранить документ после запроса имени файла у пользователя. |
QKeySequence::Save |
5 |
Сохранить документ. |
QKeySequence::SelectAll |
26 |
Выделить весь текст. |
QKeySequence::Deselect |
67 |
Отменить выделение текста. Начиная с 5.1 |
QKeySequence::SelectEndOfBlock |
55 |
Расширить выделение до конца текстового блока. Этот ярлык используется только на macOS. |
QKeySequence::SelectEndOfDocument |
57 |
Расширить выделение до конца документа. |
QKeySequence::SelectEndOfLine |
53 |
Расширить выделение до конца строки. |
QKeySequence::SelectNextChar |
44 |
Расширить выделение до следующего символа. |
QKeySequence::SelectNextLine |
48 |
Расширить выделение до следующей строки. |
QKeySequence::SelectNextPage |
50 |
Расширить выделение до следующей страницы. |
QKeySequence::SelectNextWord |
46 |
Расширить выделение до следующего слова. |
QKeySequence::SelectPreviousChar |
45 |
Расширить выделение до предыдущего символа. |
QKeySequence::SelectPreviousLine |
49 |
Расширить выделение до предыдущей строки. |
QKeySequence::SelectPreviousPage |
51 |
Расширить выделение до предыдущей страницы. |
QKeySequence::SelectPreviousWord |
47 |
Расширить выделение до предыдущего слова. |
QKeySequence::SelectStartOfBlock |
54 |
Расширить выделение до начала текстового блока. Этот ярлык используется только на macOS. |
QKeySequence::SelectStartOfDocument |
56 |
Расширить выделение до начала документа. |
QKeySequence::SelectStartOfLine |
52 |
Расширить выделение до начала строки. |
QKeySequence::Underline |
29 |
Подчеркнуть текст. |
QKeySequence::Undo |
11 |
Отменить. |
QKeySequence::UnknownKey |
0 |
Непривязанный ключ. |
QKeySequence::WhatsThis |
2 |
Активировать "Что это?". |
QKeySequence::ZoomIn |
16 |
Увеличить масштаб. |
QKeySequence::ZoomOut |
17 |
Уменьшить масштаб. |
QKeySequence::FullScreen |
66 |
Переключить состояние окна в полноэкранный режим и обратно. |
QKeySequence::Cancel |
70 |
Отменить текущую операцию. |
Этот перечисление был введён или изменён в Qt 4.2.
Документация функций-членов
QKeySequence::QKeySequence(QKeySequence::StandardKey key)
Создаёт объект QKeySequence для заданного key. Результат будет зависеть от текущей платформы.
Полученный объект будет основан на первом элементе в списке сочетаний клавиш для key.
Эта функция была добавлена в Qt 4.2.
QKeySequence::QKeySequence(const QKeySequence &keysequence)
Конструктор копирования. Создаёт копию keysequence.
QKeySequence::QKeySequence(int k1, int k2 = 0, int k3 = 0, int k4 = 0)
Создаёт сочетание клавиш до 4-х клавиш k1, k2, k3 и k4.
Коды клавиш перечислены в Qt::Key и могут быть объединены с модификаторами (см. Qt::Modifier), такими как Qt::SHIFT, Qt::CTRL, Qt::ALT или Qt::META.
QKeySequence::QKeySequence(const QString &key, QKeySequence::SequenceFormat format = NativeText)
Создаёт сочетание клавиш из строки key, основанное на format.
Например, "Ctrl+O" даёт CTRL+'O'. Строки "Ctrl", "Shift", "Alt" и "Meta" распознаются, а также их переведённые эквиваленты в контексте "QShortcut" (с использованием QObject::tr()).
До четырёх кодов клавиш можно ввести, разделив их запятыми, например "Alt+X,Ctrl+S,Q".
Этот конструктор обычно используется с tr(), чтобы сочетания клавиш можно было заменить при переводе:
QMenu *file = new QMenu(this);
file->addAction(tr("&Open..."), this, SLOT(open()),
QKeySequence(tr("Ctrl+O", "File|Open"))); Обратите внимание на комментарий к переводчику "Файл|Открыть". Он совершенно не обязателен, но предоставляет некоторую информацию для переводчика.
QKeySequence::QKeySequence()
Создаёт пустое сочетание клавиш.
QKeySequence &QKeySequence::operator=(QKeySequence &&other)
Перемещающее присваивание other экземпляру QKeySequence.
Эта функция была добавлена в Qt 5.2.
QKeySequence &QKeySequence::operator=(const QKeySequence &other)
Оператор присваивания. Присваивает сочетание клавиш other данному объекту.
QKeySequence::~QKeySequence()
Удаляет сочетание клавиш.
int QKeySequence::count() const
Возвращает количество клавиш в сочетании клавиш. Максимальное значение - 4.
[static] QKeySequence QKeySequence::fromString(const QString &str, QKeySequence::SequenceFormat format = PortableText)
Возвращает QKeySequence из строки str, основанной на format.
Эта функция была добавлена в Qt 4.1.
См. также toString().
bool QKeySequence::isEmpty() const
Возвращает true если сочетание клавиш пустое; в противном случае возвращает false.
[static] QList<QKeySequence> QKeySequence::keyBindings(QKeySequence::StandardKey key)
Возвращает список сочетаний клавиш для заданного key. Результат вызова этой функции будет зависеть от целевой платформы. Первый элемент списка указывает основное сочетание для данной платформы. Если результат содержит более одного результата, эти результаты могут рассматриваться как альтернативные сочетания на той же платформе для данного key.
Эта функция была добавлена в Qt 4.2.
[static] QList<QKeySequence> QKeySequence::listFromString(const QString &str, QKeySequence::SequenceFormat format = PortableText)
Возвращает список QKeySequence из строки str, основанной на format.
Эта функция была добавлена в Qt 5.1.
См. также fromString() и listToString().
[static] QString QKeySequence::listToString(const QList<QKeySequence> &list, QKeySequence::SequenceFormat format = PortableText)
Возвращает строковое представление list, основанное на format.
Эта функция была добавлена в Qt 5.1.
См. также toString() и listFromString().
QKeySequence::SequenceMatch QKeySequence::matches(const QKeySequence &seq) const
Сопоставляет последовательность с seq. Возвращает ExactMatch при успехе, PartialMatch, если seq частично совпадает, и NoMatch, если последовательности не имеют ничего общего. Возвращает NoMatch, если seq короче.
[static] QKeySequence QKeySequence::mnemonic(const QString &text)
Возвращает сочетание клавиш для мнемоники в text или пустое сочетание клавиш, если мнемоники не найдены.
Например, mnemonic("E&xit") возвращает Qt::ALT+Qt::Key_X, mnemonic("&Quit") возвращает ALT+Key_Q, а mnemonic("Quit") возвращает пустое QKeySequence.
Мы предоставляем список распространённых мнемоник на английском языке. На момент написания, Microsoft и Open Group, похоже, не выпустили эквивалентных рекомендаций для других языков.
void QKeySequence::swap(QKeySequence &other)
Меняет местами сочетание клавиш other с этим сочетанием клавиш. Эта операция очень быстрая и никогда не терпит неудачу.
Эта функция была добавлена в Qt 4.8.
QString QKeySequence::toString(QKeySequence::SequenceFormat format = PortableText) const
Возвращает строковое представление сочетания клавиш, основанное на format.
Например, значение Qt::CTRL+Qt::Key_O приводит к "Ctrl+O". Если сочетание клавиш имеет несколько кодов клавиш, каждый из них отделяется запятыми в возвращаемой строке, например "Alt+X, Ctrl+Y, Z". Строки "Ctrl", "Shift" и т.д. переводятся с помощью QObject::tr() в контексте "QShortcut".
Если сочетание клавиш не содержит клавиш, возвращается пустая строка.
В macOS возвращаемая строка похожа на последовательность, отображаемую в строке меню, если format — QKeySequence::NativeText; в противном случае строка использует "переносимый" формат, подходящий для записи в файл.
Эта функция была добавлена в Qt 4.1.
См. также fromString().
QVariant QKeySequence::operator QVariant() const
Возвращает сочетание клавиш как QVariant.
bool QKeySequence::operator!=(const QKeySequence &other) const
Возвращает true если это сочетание клавиш не равно сочетанию клавиш other; в противном случае возвращает false.
bool QKeySequence::operator<(const QKeySequence &other) const
Обеспечивает произвольное сравнение этого сочетания клавиш и сочетания клавиш other. Гарантируется только то, что оператор возвращает false если оба сочетания клавиш равны, и что (ks1 < ks2) == !( ks2 < ks1), если сочетания клавиш не равны.
Эта функция полезна в некоторых случаях, например, если вы хотите использовать объекты QKeySequence в качестве ключей в QMap.
См. также operator==(), operator!=(), operator>(), operator<=() и operator>=().
bool QKeySequence::operator<=(const QKeySequence &other) const
Возвращает true, если эта последовательность клавиш меньше или равна последовательности клавиш other; в противном случае возвращает false.
См. также operator==(), operator!=(), operator<(), operator>() и operator>=().
bool QKeySequence::operator==(const QKeySequence &other) const
Возвращает true, если эта последовательность клавиш равна последовательности клавиш other; в противном случае возвращает false.
bool QKeySequence::operator>(const QKeySequence &other) const
Возвращает true, если эта последовательность клавиш больше последовательности клавиш other; в противном случае возвращает false.
См. также operator==(), operator!=(), operator<(), operator<=() и operator>=().
bool QKeySequence::operator>=(const QKeySequence &other) const
Возвращает true, если эта последовательность клавиш больше или равна последовательности клавиш other; в противном случае возвращает false.
См. также operator==(), operator!=(), operator<(), operator>() и operator<=().
int QKeySequence::operator[](uint index) const
Возвращает ссылку на элемент в позиции index в последовательности клавиш. Это можно использовать только для чтения элемента.
Связанные нечлен-функции
void qt_set_sequence_auto_mnemonic(bool b)
Указывает, следует ли обрабатывать мнемоники для пунктов меню, меток и т. д. В Windows и X11 эта функция включена по умолчанию; в macOS — выключена. Когда эта функция выключена (то есть, когда b равно false), QKeySequence::mnemonic() всегда возвращает пустую строку.
Примечание: Эта функция не объявлена ни в одном из заголовочных файлов Qt. Чтобы использовать её в своём приложении, объявите прототип функции перед её вызовом.
См. также QShortcut.
QDataStream &operator<<(QDataStream &stream, const QKeySequence &sequence)
Записывает последовательность клавиш sequence в поток stream.
См. также Формат операторов QDataStream.
QDataStream &operator>>(QDataStream &stream, QKeySequence &sequence)
Считывает последовательность клавиш из потока stream в последовательность клавиш sequence.
См. также Формат операторов QDataStream.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.14/qkeysequence.html