PySide6.QtGui.QKeySequence¶
- class QKeySequence¶
QKeySequence
类封装了用于快捷键的键序列。更多…概要¶
方法¶
def
__init__()
def
__getitem__()
def
__reduce__()
def
__repr__()
def
count()
def
isEmpty()
def
matches()
def
__ne__()
def
__lt__()
def
__le__()
def
__eq__()
def
__gt__()
def
__ge__()
def
swap()
def
toString()
静态函数¶
def
fromString()
def
keyBindings()
def
listFromString()
def
listToString()
def
mnemonic()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
在其最常见的形式中,键序列描述了必须一起使用以执行某些操作的键组合。键序列与
QAction
对象一起使用,以指定可以使用哪些键盘快捷键来触发操作。可以通过三种不同的方式构建键序列以用作键盘快捷键:
对于标准快捷键,可以使用
standard key
来请求与每个快捷键关联的平台特定键序列。对于自定义快捷键,可以使用人类可读的字符串,如“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
定义了许多standard keyboard shortcuts
以减少在典型应用程序中设置操作所需的工作量。下表显示了一些常见的键序列,这些键序列通常用于四个广泛使用的平台上的应用程序中的这些标准快捷键。请注意,在苹果平台上,Ctrl 值对应于 Macintosh 键盘上的 Command 键,而 Meta 值对应于 Control 键。Windows
苹果平台
KDE Plasma
GNOME
F1
Ctrl+?
F1
F1
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
删除
删除
向前删除, Meta+D
删除, Ctrl+D
删除, 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+左键, 退格键
Ctrl+[
Alt+左键
Alt+左键
前进
Alt+右, Shift+退格
Ctrl+]
Alt+右
Alt+右
刷新
F5
F5
F5
Ctrl+R, F5
Ctrl+加号
Ctrl+加号
Ctrl+加号
Ctrl+加号
Ctrl+减号
Ctrl+减号
Ctrl+减号
Ctrl+减号
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+逗号
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+Up, Meta+PgUp
PgUp
PgUp
首页
Ctrl+左, Meta+左
首页
首页
结束
Ctrl+右, Meta+右
结束, Ctrl+E
结束, Ctrl+E
(无)
Alt+上, Meta+A
(无)
(无)
(无)
Alt+向下, 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+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
(无)
Alt+Shift+上, Meta+Shift+A
(无)
(无)
(无)
Alt+Shift+向下, Meta+Shift+E
(无)
(无)
Ctrl+Shift+Home
Ctrl+Shift+Up, 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
输入
输入
输入
输入
Shift+Enter
Meta+Enter, Meta+O
Shift+Enter
Shift+Enter
退格键
(无)
删除, Meta+H
(无)
(无)
取消
退出
退出, Ctrl+.
退出
退出
请注意,由于标准快捷键使用的键序列在不同平台之间有所不同,您仍然需要在每个平台上测试您的快捷键,以确保您不会无意中将相同的键序列分配给多个操作。
键盘布局问题¶
许多关键序列规范是由开发者根据某些类型键盘的布局选择的,而不是选择代表操作名称首字母的键,例如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
- class StandardKey¶
此枚举表示标准键绑定。它们可用于将平台依赖的键盘快捷键分配给
QAction
。请注意,键绑定依赖于平台。当前绑定的快捷键可以使用
keyBindings()
查询。常量
描述
QKeySequence.AddTab
添加新标签页。
QKeySequence.Back
返回上一页。
QKeySequence.Backspace
删除前一个字符。
QKeySequence.Bold
粗体文本。
QKeySequence.Close
关闭文档/标签页。
QKeySequence.Copy
复制。
QKeySequence.Cut
剪切。
QKeySequence.Delete
删除。
QKeySequence.DeleteEndOfLine
删除行尾。
QKeySequence.DeleteEndOfWord
从光标末尾删除单词。
QKeySequence.DeleteStartOfWord
删除光标前的单词开头。
QKeySequence.DeleteCompleteLine
删除整行。
QKeySequence.Find
在文档中查找。
QKeySequence.FindNext
查找下一个结果。
QKeySequence.FindPrevious
查找上一个结果。
QKeySequence.Forward
向前导航。
QKeySequence.HelpContents
打开帮助内容。
QKeySequence.InsertLineSeparator
插入一个新行。
QKeySequence.InsertParagraphSeparator
插入一个新段落。
QKeySequence.Italic
斜体文本。
QKeySequence.MoveToEndOfBlock
将光标移动到块的末尾。此快捷键仅在苹果平台上使用。
QKeySequence.MoveToEndOfDocument
将光标移动到文档末尾。
QKeySequence.MoveToEndOfLine
将光标移动到行尾。
QKeySequence.MoveToNextChar
将光标移动到下一个字符。
QKeySequence.MoveToNextLine
将光标移动到下一行。
QKeySequence.MoveToNextPage
将光标移动到下一页。
QKeySequence.MoveToNextWord
将光标移动到下一个单词。
QKeySequence.MoveToPreviousChar
将光标移动到前一个字符。
QKeySequence.MoveToPreviousLine
将光标移动到上一行。
QKeySequence.MoveToPreviousPage
将光标移动到上一页。
QKeySequence.MoveToPreviousWord
将光标移动到上一个单词。
QKeySequence.MoveToStartOfBlock
将光标移动到块的开始。此快捷键仅在苹果平台上使用。
QKeySequence.MoveToStartOfDocument
将光标移动到文档的开头。
QKeySequence.MoveToStartOfLine
将光标移动到行首。
QKeySequence.New
创建新文档。
QKeySequence.NextChild
导航到下一个标签页或子窗口。
QKeySequence.Open
打开文档。
QKeySequence.Paste
粘贴。
QKeySequence.Preferences
打开首选项对话框。
QKeySequence.PreviousChild
导航到上一个标签页或子窗口。
QKeySequence.Print
打印文档。
QKeySequence.Quit
退出应用程序。
QKeySequence.Redo
重做。
QKeySequence.Refresh
刷新或重新加载当前文档。
QKeySequence.Replace
查找并替换。
QKeySequence.SaveAs
在提示用户输入文件名后保存文档。
QKeySequence.Save
保存文档。
QKeySequence.SelectAll
选择所有文本。
QKeySequence.Deselect
取消选择文本。自5.1版本起
QKeySequence.SelectEndOfBlock
将选择扩展到文本块的末尾。此快捷键仅在苹果平台上使用。
QKeySequence.SelectEndOfDocument
将选择扩展到文档末尾。
QKeySequence.SelectEndOfLine
将选择扩展到行尾。
QKeySequence.SelectNextChar
将选择扩展到下一个字符。
QKeySequence.SelectNextLine
将选择扩展到下一行。
QKeySequence.SelectNextPage
将选择扩展到下一页。
QKeySequence.SelectNextWord
将选择扩展到下一个单词。
QKeySequence.SelectPreviousChar
将选择扩展到前一个字符。
QKeySequence.SelectPreviousLine
将选择扩展到上一行。
QKeySequence.SelectPreviousPage
将选择扩展到上一页。
QKeySequence.SelectPreviousWord
将选择扩展到前一个单词。
QKeySequence.SelectStartOfBlock
将选择扩展到文本块的开头。此快捷键仅在Apple平台上使用。
QKeySequence.SelectStartOfDocument
将选择扩展到文档的开头。
QKeySequence.SelectStartOfLine
将选择扩展到行首。
QKeySequence.Underline
下划线文本。
QKeySequence.Undo
撤销。
QKeySequence.UnknownKey
未绑定的键。
QKeySequence.WhatsThis
激活“这是什么”。
QKeySequence.ZoomIn
放大。
QKeySequence.ZoomOut
缩小。
QKeySequence.FullScreen
切换窗口状态为全屏或从全屏切换回来。
QKeySequence.Cancel
取消当前操作。
- class SequenceFormat¶
常量
描述
QKeySequence.NativeText
键序列作为平台特定的字符串。这意味着它将显示为翻译后的文本,并且在苹果平台上它将类似于菜单栏中的键序列。当您想向用户显示字符串时,最好使用此枚举。
QKeySequence.PortableText
键序列以“便携”格式给出,适合读取和写入文件。在许多情况下,它看起来类似于Windows和X11上的本地文本。
- class SequenceMatch¶
常量
描述
QKeySequence.NoMatch
键序列不同;甚至没有部分匹配。
QKeySequence.PartialMatch
键序列部分匹配,但不完全相同。
QKeySequence.ExactMatch
键序列是相同的。
- __init__()¶
构造一个空的键序列。
- __init__(key)
- Parameters:
key –
StandardKey
为给定的
key
构造一个QKeySequence
对象。结果将取决于当前运行的平台。生成的对象将基于
key
的键绑定列表中的第一个元素。- __init__(ks)
- Parameters:
ks –
QKeySequence
复制构造函数。创建
keysequence
的副本。- __init__(key[, format=QKeySequence.SequenceFormat.NativeText])
- Parameters:
key – str
format –
SequenceFormat
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
从
key
字符串创建一个键序列,基于format
。例如“Ctrl+O”给出CTRL+’O’。字符串“Ctrl”、“Shift”、“Alt”和“Meta”被识别,以及它们在“
QShortcut
”上下文中的翻译等效项(使用QObject::tr())。最多可以输入四个键码,用逗号分隔,例如“Alt+X,Ctrl+S,Q”。
此构造函数通常与 tr() 一起使用,以便可以在翻译中替换快捷键:
file = QMenu(self) file.addAction(tr("Open..."), QKeySequence(tr("Ctrl+O", "File|Open")), self.open)
注意“File|Open”翻译者注释。这绝不是必要的,但它为人类翻译者提供了一些上下文。
- __init__(k1[, k2=QKeyCombination.fromCombined(0)[, k3=QKeyCombination.fromCombined(0)[, k4=QKeyCombination.fromCombined(0)]]])
- Parameters:
k1 –
QKeyCombination
k2 –
QKeyCombination
k3 –
QKeyCombination
k4 –
QKeyCombination
构造一个最多包含4个键的键序列
k1
,k2
,k3
和k4
。另请参阅
- __init__(k1[, k2=0[, k3=0[, k4=0]]])
- Parameters:
k1 – 整数
k2 – 整数
k3 – int
k4 – int
构造一个最多包含4个键的键序列
k1
,k2
,k3
和k4
。关键代码列在Qt::Key中,并且可以与修饰符(参见Qt::KeyboardModifier)组合使用,例如Qt::ShiftModifier、Qt::ControlModifier、Qt::AltModifier或Qt::MetaModifier。
- __getitem__()¶
- __reduce__()¶
- Return type:
字符串
- __repr__()¶
- Return type:
字符串
- count()¶
- Return type:
整数
返回键序列中的键数。最大值为4。
- static fromString(str[, format=QKeySequence.SequenceFormat.PortableText])¶
- Parameters:
str – str
format –
SequenceFormat
- Return type:
根据
format
从字符串str
返回一个QKeySequence
。另请参阅
- isEmpty()¶
- Return type:
布尔
如果键序列为空,则返回
true
;否则返回false。- static keyBindings(key)¶
- Parameters:
key –
StandardKey
- Return type:
QKeySequence的列表
返回给定
key
的键绑定列表。调用此函数的结果将根据目标平台而有所不同。列表的第一个元素表示给定平台的主要快捷键。如果结果包含多个结果,这些可以被视为同一平台上给定key
的替代快捷键。- static listFromString(str[, format=QKeySequence.SequenceFormat.PortableText])¶
- Parameters:
str – str
format –
SequenceFormat
- Return type:
QKeySequence的列表
根据
format
从字符串str
返回一个QKeySequence
的列表。- static listToString(list[, format=QKeySequence.SequenceFormat.PortableText])¶
- Parameters:
list – QKeySequence 的列表
format –
SequenceFormat
- Return type:
字符串
返回基于
format
的list
的字符串表示。- matches(seq)¶
- Parameters:
seq –
QKeySequence
- Return type:
将序列与
seq
进行匹配。如果成功,返回ExactMatch
;如果seq
部分匹配,返回PartialMatch
;如果序列没有共同点,返回NoMatch
。如果seq
较短,则返回NoMatch
。- static mnemonic(text)¶
- Parameters:
文本 – str
- Return type:
返回
text
中助记符的快捷键序列,如果未找到助记符,则返回空键序列。例如,mnemonic(“E&xit”) 返回
Qt::ALT+Qt::Key_X
,mnemonic(”&Quit”) 返回ALT+Key_Q
,而 mnemonic(“Quit”) 返回一个空的QKeySequence
。- __ne__(other)¶
- Parameters:
其他 –
QKeySequence
- Return type:
布尔
如果此键序列不等于
other
键序列,则返回true
;否则返回false
。- __lt__(ks)¶
- Parameters:
ks –
QKeySequence
- Return type:
布尔
提供此键序列与
other
键序列的任意比较。唯一保证的是,如果两个键序列相等,则运算符返回false
,如果键序列不相等,则(ks1 < ks2) == !( ks2 < ks1)。此函数在某些情况下非常有用,例如,如果您想使用
QKeySequence
对象作为QMap中的键。另请参阅
operator==()
operator!=()
operator>()
operator
operator>=()
- __le__(other)¶
- Parameters:
其他 –
QKeySequence
- Return type:
布尔
如果此键序列小于或等于
other
键序列,则返回true
;否则返回false
。另请参阅
operator==()
operator!=()
operator
operator>()
operator>=()
- __eq__(other)¶
- Parameters:
其他 –
QKeySequence
- Return type:
布尔
如果此键序列等于
other
键序列,则返回true
;否则返回false
。- __gt__(other)¶
- Parameters:
其他 –
QKeySequence
- Return type:
布尔
如果此键序列大于
other
键序列,则返回true
;否则返回false
。另请参阅
operator==()
operator!=()
operator
operator
operator>=()
- __ge__(other)¶
- Parameters:
其他 –
QKeySequence
- Return type:
布尔
如果此键序列大于或等于
other
键序列,则返回true
;否则返回false
。另请参阅
operator==()
operator!=()
operator
operator>()
operator
- swap(other)¶
- Parameters:
其他 –
QKeySequence
将此键序列与
other
键序列交换。此操作非常快速且永远不会失败。- toString([format=QKeySequence.SequenceFormat.PortableText])¶
- Parameters:
format –
SequenceFormat
- Return type:
字符串
返回基于
format
的键序列的字符串表示。例如,值 Qt::CTRL+Qt::Key_O 的结果是“Ctrl+O”。如果键序列有多个键码,每个键码在返回的字符串中用逗号分隔,例如“Alt+X, Ctrl+Y, Z”。字符串“Ctrl”、“Shift”等在“
QShortcut
”上下文中使用 QObject::tr() 进行翻译。如果键序列没有键,则返回一个空字符串。
在苹果平台上,如果
format
是NativeText
,返回的字符串类似于菜单栏中显示的序列;否则,字符串使用“便携式”格式,适合写入文件。另请参阅