Класс QKeySequence
Класс QKeySequence инкапсулирует последовательность нажатий клавиш, используемых в сочетаниях клавиш. Подробнее...
| Заголовок: | #include <QKeySequence> |
| qmake: | QT += gui |
Открытые типы
| перечисление | SequenceFormat { NativeText, PortableText } |
| перечисление | SequenceMatch { NoMatch, PartialMatch, ExactMatch } |
| перечисление | StandardKey { AddTab, Back, Backspace, Bold, ..., Cancel } |
Открытые функции
| QKeySequence() | |
| QKeySequence(const QString &key, QKeySequence::SequenceFormat format = NativeText) | |
| QKeySequence(int k1, int k2 = 0, int k3 = 0, int k4 = 0) | |
| QKeySequence(const QKeySequence &keysequence) | |
| QKeySequence(QKeySequence::StandardKey key) | |
| ~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 |
| QKeySequence & | operator=(const QKeySequence &other) |
| QKeySequence & | operator=(QKeySequence &&other) |
| 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) |
| const QMetaObject | staticMetaObject |
Связанные нечлены
| void | qt_set_sequence_auto_mnemonic(bool b) |
| QDataStream & | operator<<(QDataStream &stream, const QKeySequence &sequence) |
| QDataStream & | operator>>(QDataStream &stream, QKeySequence &sequence) |
Подробное описание
Класс 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 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::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(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 QKeySequence &keysequence)
Конструктор копирования. Создаёт копию keysequence.
QKeySequence::QKeySequence(QKeySequence::StandardKey key)
Создаёт объект QKeySequence для заданного key. Результат будет зависеть от текущей платформы.
Созданный объект будет основываться на первом элементе в списке привязок клавиш для key.
Эта функция была введена в Qt 4.2.
QKeySequence::~QKeySequence()
Удаляет последовательность нажатий клавиш.
int QKeySequence::count() const
Возвращает количество клавиш в последовательности нажатий клавиш. Максимальное значение — 4.
QKeySequence QKeySequence::fromString(const QString &str, QKeySequence::SequenceFormat format = PortableText)
Возвращает QKeySequence из строки str, основываясь на формате format.
Эта функция была введена в Qt 4.1.
См. также toString().
bool QKeySequence::isEmpty() const
Возвращает true, если последовательность нажатий клавиш пустая; в противном случае возвращает false.
QList<QKeySequence> QKeySequence::keyBindings(QKeySequence::StandardKey key)
Возвращает список привязок клавиш для заданного key. Результат вызова этой функции будет различаться в зависимости от целевой платформы. Первый элемент списка указывает основное сочетание клавиш для данной платформы. Если результат содержит более одного результата, это могут быть альтернативные сочетания клавиш на той же платформе для данного key.
Эта функция была введена в Qt 4.2.
QList<QKeySequence> QKeySequence::listFromString(const QString &str, QKeySequence::SequenceFormat format = PortableText)
Возвращает список QKeySequence из строки str, основываясь на формате format.
Эта функция была введена в Qt 5.1.
См. также fromString() и listToString().
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 короче.
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. Всё, что гарантируется, это то, что оператор возвращает 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/qt-5.12/qkeysequence.html