QKeySequence 类
QKeySequence 类封装了快捷键使用的键序列。有关更多信息,请参阅这里...
头文件 | #include <QKeySequence> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake | QT += gui |
- 所有成员列表,包括继承的成员
- QKeySequence 是 隐式共享类 的一部分。
公共类型
枚举 | SequenceFormat { NativeText, PortableText } |
枚举 | SequenceMatch { NoMatch, PartialMatch, ExactMatch } |
枚举 | StandardKey { AddTab, Back, Backspace, Bold, Close, …, Cancel } |
公共函数
QKeySequence() | |
QKeySequence(const QString &key, QKeySequence::SequenceFormat format = NativeText) | |
QKeySequence(int k1, int k2 = 0, int k3 = 0, int k4 = 0) | |
QKeySequence(QKeyCombination k1, QKeyCombination k2 = QKeyCombination::fromCombined(0), QKeyCombination k3 = QKeyCombination::fromCombined(0), QKeyCombination k4 = QKeyCombination::fromCombined(0)) | |
QKeySequence(QKeySequence::StandardKey key) | |
QKeySequence(const QKeySequence &keysequence) | |
~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 |
QKeyCombination | 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) |
相关非成员
size_t | qHash(const QKeySequence &key, size_t seed = 0) |
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::KeyboardModifier 枚举值定义的值的组合来指定整数键码。每个键码由一个 Qt::Key 值和零个或多个修饰符组成,例如 Qt::ShiftModifier、Qt::ControlModifier、Qt::AltModifier 和 Qt::MetaModifier。
例如,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() 函数生成用于菜单中的可读字符串。在 Apple 平台上,使用 Macintosh 键盘上的特殊键的相应符号来描述键盘快捷键。
指定硬编码键码的另一种方法是使用字符的 Unicode 编码点;例如,'A' 给出的键序列与 Qt::Key_A 相同。
注意:在苹果平台上,对“Ctrl”,Qt::CTRL,Qt::Key_Control以及Qt::ControlModifier的引用对应于Macintosh键盘上的Command键,对“Meta”,Qt::META,Qt::Key_Meta以及Qt::MetaModifier的引用对应于Control键。实际上,开发者可以使用跨所有平台的相同快捷键描述,他们的应用程序将在苹果平台上自动按照预期工作。
标准快捷键
QKeySequence定义了多个标准键盘快捷键,以减少在典型应用程序中设置动作时所需的工作量。下表显示了四个常用平台上应用程序常用的某些常见键序列,用于这些标准快捷键。请注意,在苹果平台上,Ctrl值对应于Macintosh键盘上的Command键,而Meta值对应于Control键。
StandardKey | Windows | 苹果平台 | 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+Shift+S | Ctrl+Shift+S |
新建 | Ctrl+N | Ctrl+N | Ctrl+N | Ctrl+N |
删除 | 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, Forward, Ctrl+F6 | Ctrl+}, Forward, Ctrl+Tab | Ctrl+Tab, Forward, Ctrl+Comma | Ctrl+Tab, Forward |
上一个子窗口 | Ctrl+Shift+Tab, Back, Ctrl+Shift+F6 | Ctrl+{, Back, Ctrl+Shift+Tab | Ctrl+Shift+Tab, Back, Ctrl+Period | Ctrl+Shift+Tab, Back |
查找 | 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+Right | Alt+Right | Ctrl+Right | Ctrl+Right |
移动到前一个单词 | Ctrl+Left | Alt+Left | Ctrl+Left | Ctrl+Left |
移动到下一行 | 下 | 下,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 |
移动到块首 | (无) | Alt+Up, Meta+A | (无) | (无) |
移动到块尾 | (无) | Alt+Down, Meta+E | (无) | (无) |
移动到文档首部 | Ctrl+Home | Ctrl+Up, 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+PgDn | Shift+PgDn | Shift+PgDn | Shift+PgDn |
选择上一页 | 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+退格 | Alt+退格 | Ctrl+退格 | Ctrl+退格 |
删除单词末尾 | 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 |
退格 | (无) | 删除,Meta+H | (无) | (无) |
取消 | 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); QKeySequence(Qt::CTRL + Qt::Key_X, Qt::CTRL + Qt::Key_C); // deprecated
注意:在创建QKeySequence之前必须已经构建了QApplication实例;否则,您的应用程序可能会崩溃。
另请参阅:QShortcut。
成员类型文档
enum QKeySequence::SequenceFormat
常量 | 值 | 描述 |
---|---|---|
QKeySequence::NativeText | 0 | 关键序列作为平台特定字符串。这意味着它将显示为已翻译的文本,在苹果平台上它将类似于菜单栏中的关键序列。这个枚举最好用于您想向用户显示字符串的情况。 |
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 | 将光标移动到块的末尾。此快捷键仅在苹果平台上使用。 |
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 | 将光标移到块的开始。此快捷键仅在苹果平台上使用。 |
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 | 将选择扩展到文本块的末尾。此快捷键仅在苹果平台上使用。 |
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 | 将选择扩展到文本块的开始。此快捷键仅在苹果平台上使用。 |
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::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..."), QKeySequence(tr("Ctrl+O", "File|Open")), this, &MainWindow::open);
注意“文件|打开”翻译者注释。这绝对不是必要的,但它为人类翻译者提供了一些上下文。
QKeySequence::QKeySequence(int k1, int k2 = 0, int k3 = 0, int k4 = 0)
使用最多4个键k1、k2、k3和k4构建键序列。
键码列在Qt::Key中,并可以结合修饰符(参见Qt::KeyboardModifier)使用,如Qt::ShiftModifier、Qt::ControlModifier、Qt::AltModifier或Qt::MetaModifier。
QKeySequence::QKeySequence(QKeyCombination k1, QKeyCombination k2 = QKeyCombination::fromCombined(0), QKeyCombination k3 = QKeyCombination::fromCombined(0), QKeyCombination k4 = QKeyCombination::fromCombined(0))
使用最多4个键k1、k2、k3和k4构建键序列。
QKeySequence::QKeySequence(QKeySequence::StandardKey key)
为给定的key构建QKeySequence对象。结果将取决于当前运行的平台。
生成的对象将基于key的键绑定列表中的第一个元素。
QKeySequence::QKeySequence(const QKeySequence &keysequence)
复制构造函数。创建keysequence的副本。
[noexcept]
QKeySequence::~QKeySequence()
销毁键序列。
int QKeySequence::count() const
返回键序列中的键的数量。最大为4。
[static]
QKeySequence QKeySequence::fromString(const QString &str, QKeySequence::SequenceFormat format = PortableText)
根据format从字符串str返回QKeySequence。
参阅toString().
bool QKeySequence::isEmpty() const
如果键序列为空,则返回true
;否则返回false。
[static]
QList<QKeySequence> QKeySequence::keyBindings(QKeySequence::StandardKey key)
返回给定key的键绑定列表。调用此函数的结果将根据目标平台而有所不同。列表的第一个元素指示给定平台的快捷方式。如果有多个结果,则这些结果可以被认为是给定key在同一平台上的替代快捷方式。
[静态]
QList<QKeySequence> QKeySequence::listFromString(const QString &str, QKeySequence::SequenceFormat format = PortableText)
根据 format 从字符串 str 返回 QKeySequence 的列表。
参阅fromString() 和 listToString()。
[静态]
QString QKeySequence::listToString(const QList<QKeySequence> &list, QKeySequence::SequenceFormat format = PortableText)
基于 format 返回 list 的字符串表示。
参阅toString() 和 listFromString()。
QKeySequence::SequenceMatch QKeySequence::matches(const QKeySequence &seq) const
与 seq 匹配序列。如果成功返回 ExactMatch,如果 seq 不完全匹配则返回 PartialMatch,如果序列没有共同点则返回 NoMatch。如果 seq 较短则返回 NoMatch。
[静态]
QKeySequence QKeySequence::mnemonic(const QString &text)
返回 text 中快捷键序列的快捷键,如果没有找到快捷键则返回空快捷键序列。
例如,mnemonic("E&退出") 返回 Qt::ALT+Qt::Key_X
,mnemonic("&退出") 返回 ALT+Key_Q
,mnemonic("退出") 返回空的 QKeySequence。
[noexcept]
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" 等字符串在 "QShortcut" 上下文中使用 QObject::tr() 进行翻译。
如果没有键,则返回空字符串。
在 Apple 平台上,如果 format 是 QKeySequence::NativeText,则返回的字符串类似于菜单栏中显示的序列;否则,字符串使用“可移植”格式,适合写入文件。
另请参阅 fromString()。
QVariant QKeySequence::operator QVariant() const
返回作为 QVariant 的键序列
bool QKeySequence::operator!=(const QKeySequence &other) const
如果此键序列与 other 键序列不相等,则返回 true
;否则返回 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
如果此键序列小于或等于 other 键序列,则返回 true
;否则返回 false
。
另请参阅 operator==()、operator!=()、operator<()、operator>() 和 operator>=()。
QKeySequence &QKeySequence::operator=(const QKeySequence &other)
赋值运算符。将 other 键序列赋给此对象。
[noexcept]
QKeySequence &QKeySequence::operator=(QKeySequence &&other)
将 other 移赋给此 QKeySequence 实例。
bool QKeySequence::operator==(const QKeySequence &other) const
如果此键序列与 other 键序列相等,则返回 true
;否则返回 false
。
bool QKeySequence::operator>(const QKeySequence &other) const
如果此键序列大于 other 键序列,则返回 true
;否则返回 false
。
另请参阅 operator==()、operator!=()、operator<()、operator<=() 和 operator>=()。
bool QKeySequence::operator>=(const QKeySequence &other) const
如果此键序列大于或等于other键序列,则返回true
;否则返回false
。
另请参阅operator==(),operator!=(),operator<(),operator>()和operator<=()。
QKeyCombination QKeySequence::operator[](uint index) const
返回位于键序列中位置index的元素的引用。此操作只能用于读取元素。
相关非成员
[noexcept]
size_t qHash(const QKeySequence &key, size_t seed = 0)
使用seed对计算进行初始化,计算key的哈希值。
void qt_set_sequence_auto_mnemonic(bool b)
指定是否应遵守菜单项、标签等的内容提示。在Windows和X11上,此功能默认开启;在macOS上,默认关闭。当此功能关闭(即当b为false时),QKeySequence::mnemonic()始终返回一个空字符串。
注意:此函数未在任何Qt头文件中声明。要在应用程序中使用,请在调用前声明函数原型。
另请参阅:QShortcut。
QDataStream &operator<<(QDataStream &stream, const QKeySequence &sequence)
将键序列写入stream。
另请参阅QDataStream运算符的格式。
QDataStream &operator>>(QDataStream &stream, QKeySequence &sequence)
从stream中读取键序列到键序列。
另请参阅QDataStream运算符的格式。
© 2024 Qt公司有限公司。本文件中所包含的文档贡献者是各自版权的拥有者。本文件所提供的文档是根据自由软件基金会出版的GNU自由文档许可证版本1.3的条款授权的。Qt及其相关标志是芬兰及/或其他国家Qt公司有限的商标。所有其他商标均为各自所有者的财产。