Класс QKeySequence
Класс QKeySequence инкапсулирует последовательность нажатий клавиш, используемую в ярлыках. Подробнее...
| Заголовок: | #include <QKeySequence> |
| qmake: | QT += gui |
Открытые типы
| перечисление | SequenceFormat { NativeText, PortableText } |
| перечисление | SequenceMatch { НетСовпадения, ЧастичноеСовпадение, ТочноеСовпадение } |
| перечисление | StandardKey { AddTab, Back, Backspace, Bold, ..., 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.
Альтернативный способ указания жёстко закодированных кодов клавиш — использование кода Unicode символа; например, '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 | (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+Down, Meta+PgDown, Meta+V | PgDown | PgDown |
| Переместиться к предыдущей странице | PgUp | PgUp, Alt+PgUp, Meta+Up, Meta+PgUp | PgUp | PgUp |
| Переместиться к началу строки | Home | Ctrl+Left, Meta+Left | Home | Home |
| Переместиться к концу строки | End | Ctrl+Right, Meta+Right | End, Ctrl+E | End, Ctrl+E |
| Переместиться к началу блока | (none) | Alt+Up, Meta+A | (none) | (none) |
| Переместиться к концу блока | (none) | Alt+Down, Meta+E | (none) | (none) |
| Переместиться к началу документа | Ctrl+Home | Ctrl+Up, Home | Ctrl+Home | Ctrl+Home |
| Переместиться к концу документа | Ctrl+End | Ctrl+Down, 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+Left | Shift+Home | Shift+Home |
| Выделить конец строки | Shift+End | Ctrl+Shift+Right | Shift+End | Shift+End |
| Выделить начало блока | (none) | Alt+Shift+Up, Meta+Shift+A | (none) | (none) |
| Выделить конец блока | (none) | Alt+Shift+Down, Meta+Shift+E | (none) | (none) |
| Выделить начало документа | Ctrl+Shift+Home | Ctrl+Shift+Up, Shift+Home | Ctrl+Shift+Home | Ctrl+Shift+Home |
| Выделить конец документа | Ctrl+Shift+End | Ctrl+Shift+Down, 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 плюс и 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.
Документация по типам членов
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::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)
Создаёт последовательность клавиш с до четырёх клавиш 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 QKeySequence::qt_set_sequence_auto_mnemonic(bool b)
Указывает, следует ли учитывать мнемоники для пунктов меню, меток и т. д. В Windows и X11 эта функция включена по умолчанию; в macOS — выключена. Когда эта функция выключена (то есть, когда b равно false), QKeySequence::mnemonic() всегда возвращает пустую строку.
Примечание: Эта функция не объявлена ни в одном из заголовочных файлов Qt. Чтобы использовать ее в своем приложении, объявите прототип функции перед вызовом.
См. также QShortcut.
QDataStream &QKeySequence::operator<<(QDataStream &stream, const QKeySequence &sequence)
Записывает последовательность клавиш sequence в stream.
См. также Формат операторов QDataStream.
QDataStream &QKeySequence::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.13/qkeysequence.html