Класс QKeySequence
Класс QKeySequence инкапсулирует последовательность нажатий клавиш, используемую в сокращениях. Подробнее...
| Заголовок: | #include <QKeySequence> |
| CMake: | find_package(Qt6 COMPONENTS Gui REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| 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(QKeyCombination k1, QKeyCombination k2 = QKeyCombination::fromCombined(0), QKeyCombination k3 = QKeyCombination::fromCombined(0), QKeyCombination k4 = QKeyCombination::fromCombined(0)) | |
| 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 |
Статические члены публичного доступа
| QKeySequence | fromString(const QString &str, QKeySequence::SequenceFormat format = PortableText) |
Связанные внешние члены
| void | qt_set_sequence_auto_mnemonic(bool b) |
Подробное описание
В большинстве случаев последовательность нажатий клавиш описывает сочетание клавиш, которое необходимо использовать вместе для выполнения некоторого действия. Последовательности нажатий клавиш используются с объектами 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);
QKeySequence(Qt::CTRL + Qt::Key_P); // deprecated Обратите внимание, что для букв регистр, используемый в строке задания, не имеет значения. В приведенных выше примерах пользователю не нужно удерживать клавишу Shift, чтобы активировать сочетание, заданное "Ctrl+P". Однако для других клавиш использование Shift как неуказанного дополнительного модификатора может привести к путанице для пользователей приложения, у которых раскладки клавиатур отличаются от используемых разработчиками. Подробности см. в разделе Проблемы с раскладкой клавиатуры ниже.
Предпочтительно использовать стандартные сочетания клавиш, когда это возможно. При создании последовательностей нажатий клавиш для нестандартных сочетаний клавиш следует использовать удобочитаемые строки вместо жёстко закодированных целых значений.
Объекты QKeySequence можно преобразовать в QString, чтобы получить удобочитаемый переведённый вариант последовательности. Аналогично, функция toString() производит удобочитаемые строки для использования в меню. В macOS используются соответствующие символы для описания сочетаний клавиш с использованием специальных клавиш на клавиатуре Macintosh.
Альтернативный способ задания жёстко закодированных кодов клавиш — использовать код Юникода символа; например, 'A' даёт ту же последовательность клавиш, что и Qt::Key_A.
END_OF_DOCUMENT_MARKER ```Примечание: На 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);
QKeySequence(Qt::CTRL + Qt::Key_X, Qt::CTRL + Qt::Key_C); // deprecated Предупреждение: Экземпляр 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 |
Отменить текущую операцию. |
Документация по функциям-членам
QKeySequence::QKeySequence(QKeySequence::StandardKey key)
Создает объект QKeySequence для заданного key. Результат будет зависеть от текущей платформы.
Полученный объект будет основан на первом элементе в списке сочетаний клавиш для key.
QKeySequence::QKeySequence(const QKeySequence &keysequence)
Конструктор копирования. Создает копию keysequence.
QKeySequence::QKeySequence(QKeyCombination k1, QKeyCombination k2 = QKeyCombination::fromCombined(0), QKeyCombination k3 = QKeyCombination::fromCombined(0), QKeyCombination k4 = QKeyCombination::fromCombined(0))
Создает последовательность клавиш с максимум 4 клавишами k1, k2, k3 и k4.
См. также QKeyCombination.
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"))); Обратите внимание на комментарий к переводу "File|Open". Он не является необходимым, но он предоставляет контекст для переводчика.
QKeySequence::QKeySequence()
Создаёт пустую последовательность клавиш.
[since 5.2] 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.
См. также toString().
bool QKeySequence::isEmpty() const
Возвращает true, если последовательность клавиш пустая; в противном случае возвращает false.
[static] QList<QKeySequence> QKeySequence::keyBindings(QKeySequence::StandardKey key)
Возвращает список сочетаний клавиш для заданного key. Результат вызова этой функции будет варьироваться в зависимости от целевой платформы. Первый элемент списка указывает основное сочетание клавиш для данной платформы. Если результат содержит более одного результата, их можно рассматривать как альтернативные сочетания клавиш на той же платформе для заданного key.
[static, since 5.1] QList<QKeySequence> QKeySequence::listFromString(const QString &str, QKeySequence::SequenceFormat format = PortableText)
Возвращает список QKeySequence из строки str, основываясь на format.
Эта функция была добавлена в Qt 5.1.
См. также fromString() и listToString().
[static, since 5.1] 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 с этой последовательностью клавиш. Эта операция очень быстрая и никогда не терпит неудачу.
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; в противном случае строка использует "портативный" формат, подходящий для записи в файл.
См. также fromString().
QVariant QKeySequence::operator QVariant() const
Возвращает последовательность клавиш как QVariant.
bool QKeySequence::operator!=(const QKeySequence &other) const
Возвращает true, если эта последовательность клавиш не равна other; в противном случае возвращает false.
END_OF_DOCUMENT_MARKERbool 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<=().
QKeyCombination 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-6.2/qkeysequence.html