Python PyQt中一个按钮的两个快捷方式

Python PyQt中一个按钮的两个快捷方式,python,python-3.x,pyqt,pyqt5,Python,Python 3.x,Pyqt,Pyqt5,在PyQt中,如何为一个按钮绑定两个快捷键?我已经浏览了QT文档和StackOverflow,但我发现的唯一一件事是,但那是针对QT的,我无法理解。唯一的区别是,您应该使用列表,而不是QList: from PyQt5 import QtCore, QtGui, QtWidgets class MainWindow(QtWidgets.QMainWindow): def __init__(self, parent=None): super(MainWindow, sel

在PyQt中,如何为一个按钮绑定两个快捷键?我已经浏览了QT文档和StackOverflow,但我发现的唯一一件事是,但那是针对QT的,我无法理解。

唯一的区别是,您应该使用
列表,而不是
QList

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
s:

for sequence in ("Enter", "Return",):
    shorcut = QtWidgets.QShortcut(sequence, self.pushButton_eq)
    shorcut.activated.connect(self.pushButton_eq.animateClick)

我这样做了,
self.butdown\u eq.setShortcut(\u translate(“main window”),[“Return”,“Enter”])
,但我得到了
TypeError:translate(str,str,消歧:str=None,n:int=-1):参数2有意外的类型“list”
我的程序完整代码可用。它位于
/Calculator/MainWindow.py
@DS\u SecretStudios为什么要使用
\u translate
?@DS\u SecretStudios另一方面,在你的问题中,你指向的是一个动作(QAction),而不是QPushButton。这个按钮在我的程序中运行一个函数,因此我想我可以把它连接到这个按钮上。