Qt QAction键绑定

Qt QAction键绑定,qt,pyqt,Qt,Pyqt,在Windows上,有几个标准操作的键绑定。例如,要复制,可以使用Ctrl+C或Ctrl+Insert Qt如何处理这个问题?这就是我所做的: 我使用QKeySequence.keyBindings()获得了键绑定的列表 我创建了两个动作,一个用于Ctrl+C,另一个用于Ctrl+Insert 它似乎起作用了 问题:使用Qt处理键绑定是否正确 完整源代码: from sys import argv, exit from PyQt4.QtGui import QApplication, QWidg

在Windows上,有几个标准操作的键绑定。例如,要复制,可以使用Ctrl+CCtrl+Insert

Qt如何处理这个问题?这就是我所做的:

  • 我使用QKeySequence.keyBindings()获得了键绑定的列表
  • 我创建了两个动作,一个用于Ctrl+C,另一个用于Ctrl+Insert
  • 它似乎起作用了

    问题:使用Qt处理键绑定是否正确

    完整源代码:

    from sys import argv, exit
    from PyQt4.QtGui import QApplication, QWidget, QAction, QKeySequence
    
    
    class Widget(QWidget):
        def __init__(self):
            QWidget.__init__(self)
            for key in QKeySequence.keyBindings(QKeySequence.Copy):
                action = QAction("Copy", self)
                action.triggered.connect(self._copy)
                action.setShortcut(key)
                self.addAction(action)
    
        def _copy(self):
            print("Copy!")
    
    print("On Windows, use Ctrl+C or Ctrl+Insert to copy.")
    app = QApplication(argv)
    w = Widget()
    w.show()
    exit(app.exec_())
    

    您只需要一个操作和一个调用


    您只需要一个操作和一个调用


    谢谢我不知道setShortcuts()。但是,关于addAction(),如果我删除它,它对我来说是不起作用的。是的,我肯定需要
    addAction
    ,否则它会按什么顺序运行等等……它不假设布局……而且需要确切地告诉它要粘贴到哪个小部件上(例如,通常操作被定义为主窗口的子窗口,但实际上是添加到工具栏,而不是直接添加到主窗口)。奇怪的是,即使您没有显示带有图标的操作,但仅通过键盘快捷键使用它,您也需要将其添加到小部件:谢谢。我消除了不准确之处。谢谢!我不知道setShortcuts().但是,关于addAction(),如果我删除它,它对我不起作用。是的,我肯定需要
    addAction
    ,否则它会按什么顺序运行等等…它不假设布局…而且需要确切地告诉它要粘贴到哪个小部件上(例如,通常操作被定义为主窗口的子窗口,但实际上是添加到工具栏,而不是直接添加到主窗口)。奇怪的是,即使您没有显示带有图标的操作,但仅通过键盘快捷键使用它,您也需要将其添加到小部件:谢谢。我消除了不准确之处。
    action = QAction("Copy", self)
    action.setShortcuts(QKeySequence.keyBindings(QKeySequence.Copy))
    action.triggered.connect(self._copy)