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

DS_*_*ios 3 python pyqt python-3.x pyqt5

在 PyQt 中,如何为一个按钮绑定两个快捷方式?我已经搜索了 QT 文档和 StackOverflow,但我发现的唯一一件事是两个快捷方式用于一个操作,但那是针对 QT 的,我无法理解。

eyl*_*esc 5

唯一的区别是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_())
Run Code Online (Sandbox Code Playgroud)

在 QWidgets 的情况下,他们没有该setShortcuts()方法,因此一种选择是使用QShortcuts:

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