当前位置:   article > 正文

42.QKeySequenceEdit

qkeysequence

继承自QWidget

主要作用为接收用户的快捷键

获取焦点后开始获取信息,当停止输入1s后停止接收信息

目录

1  基本操作

1.1  创建 QKeySequenceEdit

2  快捷键

2.1  QKeySequence(key_str)

2.1.1  设置默认快捷键 setKeySequence()

2.1.2  获取默认快捷键 keySequence()

2.2  QKeySequence(QKeySequence.StandardKey key)

2.3  QKeySequence(Qt.key)

2.4  QKeySequence(int k1,int k2 = 0,int k3 = 0,int k4 = 0)

2.5  fromString(key_str)

2.6  将快捷键转换为字符串 toString()

2.7  返回有几组快捷键 count()

2.8  清除框内的内容 clear()

3  信号

3.1  结束编辑信号 editingFinished()

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/115004
推荐阅读
相关标签
  

闽ICP备14008679号