Qt QAction键绑定
在Windows上,有几个标准操作的键绑定。例如,要复制,可以使用Ctrl+C或Ctrl+Insert Qt如何处理这个问题?这就是我所做的: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
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)