在PyQt中,您如何将两个快捷键绑定到一个按钮?我已经仔细研究了QT文档和StackOverflow,但我发现的唯一发现是Two shortcuts for one action,但这是针对QT的,我无法解决。
答案 0 :(得分:4)
唯一的区别是,应该使用QList
而不是使用list
:
from PyQt5 import QtCore, QtGui, QtWidgets
class MainWindow(QtWidgets.QMainWindow):
def __init__(self, parent=None):
super(MainWindow, self).__init__(parent)
menubar = self.menuBar()
menu = menubar.addMenu("File")
foo_action = menu.addAction("foo")
foo_action.setShortcuts(["Ctrl+1", "Ctrl+S"])
foo_action.triggered.connect(self.on_triggered)
@QtCore.pyqtSlot()
def on_triggered(self):
print("on_triggered")
if __name__ == '__main__':
import sys
app = QtWidgets.QApplication(sys.argv)
w = MainWindow()
w.show()
sys.exit(app.exec_())
对于QWidget,它们没有setShortcuts()
方法,因此一种选择是使用QShortcut
:
for sequence in ("Enter", "Return",):
shorcut = QtWidgets.QShortcut(sequence, self.pushButton_eq)
shorcut.activated.connect(self.pushButton_eq.animateClick)