044.PyQt5_QKeySequenceEdit_快捷键编辑器

QKeySequenceEdit快捷键编辑器

  • 描述
    • 控件允许输入QKeySequence(键位序列对象), 它通常用作快捷方式。
    • 当控件收到焦点时开始录制,并在用户释放最后一个关键字后一秒钟结束录制
  • 继承自:QWidget
  • 功能作用
    • 快捷键
    setKeySequence(QKeySequence keySequence)            # 通过键位序列设置默认录制的快捷键
    
    keySequence() -> QKeySequence                       # 获取录制快捷键返回的键位序列
    # QKeySequenceEdit 录制用户按下的快捷键,生成一个键位序列对象
    
    • 清除
    clear()                                             # 清除QKeySequenceEdit中的键位序列对象
    
  • 信号
    editingFinished()                                        # 结束编辑时发射
    keySequenceChanged(QKeySequence  keySequence)            # 键位序列改变时发射
    # keySequenceChanged信号会向外发射QKeySequence键位序列对象
    

  • 补充:QKeySequence_键位序列对象
    • 用来描述一个键位序列
    • 键位序列描述了必须一起使用以执行某些操作的键组合
    • 键位序列分类
      • 标准键位序列(QKeySequence.)
      • 自定义键位序列
    • 注意
      1. 优先使用标准键位序列
      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
    • 自定义按键序列
      • 字符串:"Ctrl+S"
      • 枚举值:Qt.Ctrl + Qt.Key_S
  • 功能作用
    • 构造函数
      QKeySequence(key_str)                                           # 通过自定义按键序列中字符串方式创建键位序列对象
      QKeySequence(QKeySequence.StandardKey key)                      # 通过标准键位序列枚举值创建键位序列对象
      QKeySequence(int k1, int k2 = 0, int k3 = 0, int k4 = 0)        # 通过自定义按键序列中的枚举值方式创建键位序列对象
      静态方法:fromString(key_str)
      
    • 转换成可读字符串
      toString() -> str                       # 将键位序列对象转换为可读字符串
      
    • 键组个数
      count()                                 # 获取键位序列对象中快捷键组数
      

  • 示例代码
  • 示例:QKeySequenceEdit创建使用
    from PyQt5.Qt import *
    import sys
    
    class Windows(QWidget):
        def __init__(self):
            super().__init__()
            self.setWindowTitle('QKeySequenceEdit-创建使用')
            self.resize(500, 500)
            self.widget_list()
    
        def widget_list(self):
            self.add_widget()
    
    
        def add_widget(self):
            # kse = QKeySequenceEdit(self)          # 创建快捷键编辑器对象,并设置父对象
    
            # ks = QKeySequence('Ctrl + C')           # 通过自定义按键序列中字符串方式创建按键序列对象
            # ks = QKeySequence(QKeySequence.Copy)        # 通过标准按键序列枚举值创建按键序列对象
            ks = QKeySequence(Qt.CTRL+Qt.Key_S, Qt.ALT + Qt.Key_A)      # 通过自定义按键序列中枚举值方式创建按键序列对象
    
            kse = QKeySequenceEdit(ks, self)        # 创建快捷键编辑对象的同时设置默认按键序列对象和父对象
            kse.move(10, 10)
    
            # 可用信号
            # kse.editingFinished.connect(lambda :print('编辑结束了....'))     # 编辑结束时发射该信号
    
            kse.keySequenceChanged.connect(lambda key_val :print('按键发生了改变...',key_val))
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        window = Windows()
    
        window.show()
        sys.exit(app.exec_())

你可能感兴趣的:(PyQt5,qt5,pyqt,python,qt,开发语言)