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.)
      枚举值对应快捷键
      HelpContentsF1
      WhatsThisShift+F1
      OpenCtrl+O
      CloseCtrl+F4, Ctrl+W
      SaveCtrl+S
      QuitCtrl+Q
      SaveAsCtrl+Shift+S
      NewCtrl+N
      DeleteDel
      CutCtrl+X, Shift+Del
      CopyCtrl+C, Ctrl+Ins
      PasteCtrl+V, Shift+Ins
      PreferencesCtrl+,
      UndoCtrl+Z, Alt+Backspace
      RedoCtrl+Y, Shift+Ctrl+Z, Alt+Shift+Backspace
      BackAlt+Left, Backspace
      ForwardAlt+Right, Shift+Backspace
      RefreshF5
      ZoomInCtrl+Plus
      ZoomOutCtrl+Minus
      FullScreenF11, Alt+Enter
      PrintCtrl+P
      AddTabCtrl+T
      NextChildCtrl+Tab, Forward, Ctrl+F6
      PreviousChildCtrl+Shift+Tab, Back, Ctrl+Shift+F6
      FindCtrl+F
      FindNextF3, Ctrl+G
      FindPreviousShift+F3, Ctrl+Shift+G
      ReplaceCtrl+H
      SelectAllCtrl+A
      DeselectCtrl+Shift+A
      BoldCtrl+B
      ItalicCtrl+I
      UnderlineCtrl+U
      MoveToNextCharRight
      MoveToPreviousCharLeft
      MoveToNextWordCtrl+Right
      MoveToPreviousWordCtrl+Left
      MoveToNextLineDown
      MoveToPreviousLineUp
      MoveToNextPagePgDown
      MoveToPreviousPagePgUp
      MoveToStartOfLineHome
      MoveToEndOfLineEnd
      MoveToStartOfDocumentCtrl+Home
      MoveToEndOfDocumentCtrl+End
      SelectNextCharShift+Right
      SelectPreviousCharShift+Left
      SelectNextWordCtrl+Shift+Right
      SelectPreviousWordCtrl+Shift+Left
      SelectNextLineShift+Down
      SelectPreviousLineShift+Up
      SelectNextPageShift+PgDown
      SelectPreviousPageShift+PgUp
      SelectStartOfLineShift+Home
      SelectEndOfLineShift+End
      SelectStartOfDocumentCtrl+Shift+Home
      SelectEndOfDocumentCtrl+Shift+End
      DeleteStartOfWordCtrl+Backspace
      DeleteEndOfWordCtrl+Del
      InsertParagraphSeparatorEnter
      InsertLineSeparatorShift+Enter
      CancelEscape
    • 自定义按键序列
      • 字符串:"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_())
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

失心疯_2023

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值