继承自QWidget
主要作用为接收用户的快捷键
获取焦点后开始获取信息,当停止输入1s后停止接收信息
目录
2.1.1 设置默认快捷键 setKeySequence()
2.2 QKeySequence(QKeySequence.StandardKey key)
2.4 QKeySequence(int k1,int k2 = 0,int k3 = 0,int k4 = 0)
3.2 键位序列改变信号 keySequenceChanged()
1 基本操作
1.1 创建 QKeySequenceEdit
为了让他先不获取焦点,我们再搞一个le
画红框的就是QKeySequenceEdit的原始样子
我们让他获取焦点,然后按ctrl + A,之后再把焦点给le
这个就是它获取到的内容
在输入未结束的时候会在文本框中出现...
录制结束之后如果再次获取焦点并输入新的按键,则会清空之前的内容
2 快捷键
它这里面有一个参数QKeySequence
上面这个图中标准键位序列有以下内容
- HelpContents F1
- WhatsThis Shift + F1
- Open Ctrl+O
- Close Ctrl+F4, Ctrl+W
- Save Ctrl+S
- Quit Ctrl+Q
- SaveAs Ctrl+Shift+S
- New Ctrl+N
- Delete Del
- Cut Ctrl+X, Shift+Del
- Copy Ctrl+C, Ctrl+Ins
- Paste Ctrl+V, Shift+Ins
- Preferences Ctrl+,
- Undo Ctrl+Z, Alt+Backspace
- Redo Ctrl+Y, Shift+Ctrl+Z, Alt+Shift+Backspace
- Back Alt+Left, Backspace
- Forward Alt+Right, Shift+Backspace
- Refresh F5
- ZoomIn Ctrl+Plus
- ZoomOut Ctrl+Minus
- FullScreen F11, Alt+Enter
- Print Ctrl+P
- AddTab Ctrl+T
- NextChild Ctrl+Tab, Forward, Ctrl+F6
- PreviousChild Ctrl+Shift+Tab, Back, Ctrl+Shift+F6
- Find Ctrl+F
- FindNext F3, Ctrl+G
- FindPrevious Shift+F3, Ctrl+Shift+G
- Replace Ctrl+H
- SelectAll Ctrl+A
- Deselect Ctrl+Shift+A #反选
- Bold Ctrl+B #加粗
- Italic Ctrl+I #倾斜
- Underline Ctrl+U
- MoveToNextChar Right #是这个按键 ->
- MoveToPreviousChar Left
- MoveToNextWord Ctrl+Right
- MoveToPreviousWord Ctrl+Left
- MoveToNextLine Down
- MoveToPreviousLine Up
- MoveToNextPage PgDown
- MoveToPreviousPage PgUp
- MoveToStartOfLine Home
- MoveToEndOfLine End
- MoveToStartOfDocument Ctrl+Home
- MoveToEndOfDocument Ctrl+End
- SelectNextChar Shift+Right
- SelectPreviousChar Shift+Left
- SelectNextWord Ctrl+Shift+Right
- SelectPreviousWord Ctrl+Shift+Left
- SelectNextLine Shift+Down
- SelectPreviousLine Shift+Up
- SelectNextPage Shift+PgDown
- SelectPreviousPage Shift+PgUp
- SelectStartOfLine Shift+Home
- SelectEndOfLine Shift+End
- SelectStartOfDocument Ctrl+Shift+Home
- SelectEndOfDocument Ctrl+Shift+End
- DeleteStartOfWord Ctrl+Backspace
- DeleteEndOfWord Ctrl+Del
- InsertParagraphSeparator Enter
- InsertLineSeparator Shift+Enter
- Cancel Escape
尽可能使用上面的默认键位序列,这些是所有人的用的习惯的
在这里是可以用整形Int替代的,但是我们尽量不要用int,这样会导致我们自己看不懂
这些是替代的Int值,我们自己不要用,但是当看别人的代码时,我们要看的懂
这些是QKeySequence中所有的int值,用在哪不知道,这个没有测试过
- AddTab = 19
- Back = 13
- Backspace = 69
- Bold = 27
- Cancel = 70
- Close = 4
- Copy = 9
- Cut = 8
- Delete = 7
- DeleteCompleteLine = 68
- DeleteEndOfLine = 60
- DeleteEndOfWord = 59
- DeleteStartOfWord = 58
- Deselect = 67
- ExactMatch = 2
- Find = 22
- FindNext = 23
- FindPrevious = 24
- Forward = 14
- FullScreen = 66
- HelpContents = 1
- InsertLineSeparator = 62
- InsertParagraphSeparator = 61
- Italic = 28
- MoveToEndOfBlock = 41
- MoveToEndOfDocument = 43
- MoveToEndOfLine = 39
- MoveToNextChar = 30
- MoveToNextLine = 34
- MoveToNextPage = 36
- MoveToNextWord = 32
- MoveToPreviousChar = 31
- MoveToPreviousLine = 35
- MoveToPreviousPage = 37
- MoveToPreviousWord = 33
- MoveToStartOfBlock = 40
- MoveToStartOfDocument = 42
- MoveToStartOfLine = 38
- NativeText = 0
- New = 6
- NextChild = 20
- NoMatch = 0
- Open = 3
- PartialMatch = 1
- Paste = 10
- PortableText = 1
- Preferences = 64
- PreviousChild = 21
- Print = 18
- Quit = 65
- Redo = 12
- Refresh = 15
- Replace = 25
- Save = 5
- SaveAs = 63
- SelectAll = 26
- SelectEndOfBlock = 55
- SelectEndOfDocument = 57
- SelectEndOfLine = 53
- SelectNextChar = 44
- SelectNextLine = 48
- SelectNextPage = 50
- SelectNextWord = 46
- SelectPreviousChar = 45
- SelectPreviousLine = 49
- SelectPreviousPage = 51
- SelectPreviousWord = 47
- SelectStartOfBlock = 54
- SelectStartOfDocument = 56
- SelectStartOfLine = 52
- Underline = 29
- Undo = 11
- UnknownKey = 0
- WhatsThis = 2
- ZoomIn = 16
- ZoomOut = 17
我们现在看一下怎么创建QKeySequence()
下面设置key_str时要注意,加号的两侧不能有空格
2.1 QKeySequence(key_str)
我们在这里直接把设置和获取讲了
2.1.1 设置默认快捷键 setKeySequence()
也可以在构造函数中直接设置
2.1.2 获取默认快捷键 keySequence()
2.2 QKeySequence(QKeySequence.StandardKey key)
- 这个就是我们刚刚的标准键位的内容
我就不一个一个试了,我试一个replace,ctrl+H
咱们看到刚刚的标准键位后有一个值对应两种按键的情况,根据不同的操作系统可能会出现不一样的情况,比如说我复制是有两个的
- ctrl + c
- ctrl + ins
我们发现显示的ctrl + c
2.3 QKeySequence(Qt.key)
2.4 QKeySequence(int k1,int k2 = 0,int k3 = 0,int k4 = 0)
- 设置至多四组默认快捷键
2.5 fromString(key_str)
之后我们把它赋值给QKeySequenceEdit()
2.6 将快捷键转换为字符串 toString()
2.7 返回有几组快捷键 count()
2.8 清除框内的内容 clear()
这个我们要搞一个按钮然后连接一个槽函数
我们现在输入三个ctrl+A
之后点击一下按钮
发现内容被清空了
3 信号
3.1 结束编辑信号 editingFinished()
一个快捷键文本框,一个单行文本框,快捷键文本框连结束编辑的信号
我们输入ctrl+a后,结束编辑时
注:
- 1.QKeySequenceEdit在失去焦点时并不会立即结束编辑
- 2.失去焦点和结束编辑一点儿关系都没有,结束编辑只会在停止编辑后的1s后触发
3.2 键位序列改变信号 keySequenceChanged()
我们首先输入ctrl+a,在我们结束的时候
我们现在再将焦点移回快捷键文本框,再次输入ctrl+a
当我们输入的时候会再次激活信号,这次信号代表把之前的内容清空
输入结束的时候又激活了一遍信号,这次表示又输入了一次
也就是我们在完成两次输入这一过程中,共触发了三次信号
同一批次的键位序列改变信号总是会在结束编辑前触发,现在我们把两个信号都连接起来
我们输入一次ctrl+a
再输入一次
keySequenceChanged可以传递变量QKeySequenceEdit也就是我们的快捷键文本框本身
我们可以使用相应方法,比如获取快捷键文本框快捷键的个数count