Класс QKeySequence
Класс QKeySequence инкапсулирует последовательность нажатий клавиш, используемую для ярлыков. Подробнее...
| Заголовок: | #include <QKeySequence> |
| qmake: | QT += gui |
Типы
| перечисление | SequenceFormat { NativeText, PortableText } |
| перечисление | SequenceMatch { НетСовпадения, ЧастичноеСовпадение, ПолноеСовпадение } |
| перечисление | StandardKey { AddTab, Back, Backspace, Bold, ..., Cancel } |
Открытые функции
| QKeySequence() | |
| QKeySequence(const QString &key, SequenceFormat format = NativeText) | |
| QKeySequence(int k1, int k2 = 0, int k3 = 0, int k4 = 0) | |
| QKeySequence(const QKeySequence &keysequence) | |
| QKeySequence(StandardKey key) | |
| ~QKeySequence() | |
| int | count() const |
| bool | isEmpty() const |
| SequenceMatch | matches(const QKeySequence &seq) const |
| void | swap(QKeySequence &other) |
| QString | toString(SequenceFormat format = PortableText) const |
| operator QVariant() const | |
| bool | operator!=(const QKeySequence &other) const |
| bool | operator<(const QKeySequence &other) const |
Статические открытые члены
Связанные нечлены
Подробное описание
Класс QKeySequence инкапсулирует последовательность нажатий клавиш, используемую для ярлыков.
В наиболее распространённом виде последовательность нажатий клавиш описывает комбинацию клавиш, которая должна быть использована вместе для выполнения некоторого действия. Последовательности нажатий клавиш используются с объектами 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 | 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 | (none) | 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 |
| Переместить в начало блока | (none) | Alt+Вверх, Meta+A | (none) | (none) |
| Переместить в конец блока | (none) | Alt+Вниз, Meta+E | (none) | (none) |
| Переместить в начало документа | 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 |
| Выделить начало блока | (none) | Alt+Shift+Вверх, Meta+Shift+A | (none) | (none) |
| Выделить конец блока | (none) | Alt+Shift+Вниз, Meta+Shift+E | (none) | (none) |
| Выделить начало документа | 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 | (none) | Ctrl+Del | Ctrl+Del |
| Удалить конец строки | (none) | (none) | Ctrl+K | Ctrl+K |
| Удалить всю строку | (none) | (none) | Ctrl+U | Ctrl+U |
| Вставить разделитель абзацев | Enter | Enter | Enter | Enter |
| Вставить разделитель строк | Shift+Enter | Meta+Enter, Meta+O | Shift+Enter | Shift+Enter |
| Backspace | (none) | Meta+H | (none) | (none) |
| Отмена | Escape | Escape, Ctrl+. | Escape | Escape |
Обратите внимание, что, поскольку последовательности клавиш для стандартных ярлыков различаются между платформами, вам все равно необходимо протестировать свои ярлыки на каждой платформе, чтобы убедиться, что вы не присваиваете одну и ту же последовательность клавиш многим действиям непреднамеренно.
Проблемы с раскладкой клавиатуры
Многие спецификации последовательностей клавиш выбираются разработчиками на основе раскладки определенных типов клавиатур, а не выбора клавиш, которые представляют собой первую букву названия действия, например, Ctrl S («Ctrl+S») или Ctrl C («Ctrl+C»). Кроме того, поскольку некоторые символы могут вводиться только с помощью модификаторных клавиш на определенных раскладках клавиатуры, последовательности клавиш, предназначенные для использования с одной раскладкой клавиатуры, могут отображаться как другая клавиша, вообще не отображаться или требовать дополнительной модификаторной клавиши для использования на других раскладках клавиатуры.
Например, ярлыки Ctrl plus и Ctrl minus часто используются в качестве ярлыков для операций масштабирования в графических приложениях, и они могут быть указаны соответственно как «Ctrl++» и «Ctrl+-». Однако способ указания и интерпретации этих ярлыков зависит от раскладки клавиатуры. Пользователи норвежских клавиатур заметят, что клавиши + и - не расположены рядом на клавиатуре, но все же смогут активировать оба ярлыка, не нажимая клавишу Shift. Однако пользователи британских клавиатур должны удерживать клавишу Shift, чтобы ввести символ +, что делает ярлык фактически таким же, как «Ctrl+Shift+='».
Хотя некоторые разработчики могут прибегнуть к полному указанию всех модификаторов, которые они используют на своих клавиатурах для активации ярлыка, это также приведет к неожиданному поведению для пользователей с различными раскладками клавиатуры.
Например, разработчик, использующий британскую клавиатуру, может решить указать «Ctrl+Shift+='» в качестве последовательности клавиш, чтобы создать ярлык, который случайно ведет себя так же, как Ctrl plus. Однако для доступа к клавише = на норвежской клавиатуре требуется нажать клавишу 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.
Документация по типу членов
enum QKeySequence::SequenceFormat
| Постоянная | Значение | Описание |
|---|---|---|
QKeySequence::NativeText |
0 |
Последовательность клавиш в виде платформозависимой строки. Это означает, что она будет отображаться переведенной, а на Mac она будет напоминать последовательность клавиш из панели меню. Этот перечисление лучше всего использовать, когда вы хотите отобразить строку пользователю. |
QKeySequence::PortableText |
1 |
Последовательность клавиш представлена в «портативном» формате, подходящем для чтения и записи в файл. Во многих случаях она будет выглядеть подобно исходному тексту в Windows и X11. |
enum QKeySequence::SequenceMatch
| Постоянная | Значение | Описание |
|---|---|---|
QKeySequence::NoMatch |
0 |
Последовательности клавиш различны; даже частичного совпадения нет. |
QKeySequence::PartialMatch |
1 |
Последовательности клавиш частично совпадают, но не совпадают полностью. |
QKeySequence::ExactMatch |
2 |
Последовательности клавиш совпадают. |
enum 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::QKeySequence(const QString &key, 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(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 QKeySequence &keysequence)
Конструктор копирования. Создаёт копию keysequence.
QKeySequence::QKeySequence(StandardKey key)
Создаёт объект QKeySequence для заданного key. Результат будет зависеть от текущей платформы.
Полученный объект будет основан на первом элементе в списке сочетаний клавиш для key.
Эта функция была введена в Qt 4.2.
QKeySequence::~QKeySequence()
Удаляет последовательность клавиш.
int QKeySequence::count() const
Возвращает количество клавиш в последовательности клавиш. Максимальное значение равно 4.
QKeySequence QKeySequence::fromString(const QString &str, SequenceFormat format = PortableText)
Возвращает QKeySequence из строки str, основываясь на format.
Эта функция была введена в Qt 4.1.
См. также toString().
bool QKeySequence::isEmpty() const
Возвращает true, если последовательность клавиш пуста; в противном случае возвращает false.
QList<QKeySequence> QKeySequence::keyBindings(StandardKey key)
Возвращает список сочетаний клавиш для данного key. Результат вызова этой функции будет зависеть от целевой платформы. Первый элемент списка указывает основное сочетание клавиш для данной платформы. Если результат содержит больше одного результата, эти результаты могут рассматриваться как альтернативные сочетания клавиш на той же платформе для данного key.
Эта функция была введена в Qt 4.2.
QList<QKeySequence> QKeySequence::listFromString(const QString &str, SequenceFormat format = PortableText)
Возвращает список QKeySequence из строки str, основываясь на format.
Эта функция была введена в Qt 5.1.
См. также fromString() и listToString().
QString QKeySequence::listToString(const QList<QKeySequence> &list, SequenceFormat format = PortableText)
Возвращает строковое представление list, основываясь на format.
Эта функция была введена в Qt 5.1.
См. также toString() и listFromString().
SequenceMatch QKeySequence::matches(const QKeySequence &seq) const
Сопоставляет последовательность с seq. Возвращает ExactMatch, если успешно, PartialMatch, если seq соответствует частично, и NoMatch, если последовательности не имеют ничего общего. Возвращает NoMatch, если seq короче.
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(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().
QKeySequence::operator QVariant() const
Возвращает последовательность клавиш в виде QVariant
bool QKeySequence::operator!=(const QKeySequence &other) const
Возвращает true, если эта последовательность клавиш не равна последовательности клавиш other; в противном случае возвращает false.
bool QKeySequence::operator<(const QKeySequence &other) const
Обеспечивает произвольное сравнение этой последовательности клавиш и последовательности клавиш other. Всё, что гарантируется, это то, что оператор возвращает true, если обе последовательности клавиш равны, и что (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>=().
QKeySequence &QKeySequence::operator=(const QKeySequence &other)
Оператор присваивания. Присваивает последовательность клавиш other данному объекту.
QKeySequence &QKeySequence::operator=(QKeySequence &&other)
Перемещающее присваивание other экземпляру QKeySequence.
Эта функция была добавлена в Qt 5.2.
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/archives/qt-5.6/qkeysequence.html