已解决:PyQt5 用键盘敲击一个按钮

Solved: PyQt5 push a button with a keyboard stroke

我正在开发 PyQt5 图形用户界面。 我尝试实现一个按钮,当我按下键盘上的某个键时,它会被按下。假设 'K'。 我已经尝试过了,但是没有用。有什么想法吗?

from PyQt5.QtWidgets import QDialog, QApplication, QPushButton, QVBoxLayout,QTabWidget, QFileDialog, QShortcut
from PyQt5.QtGui import QIcon, QPixmap, QKeySequence
from PyQt5 import QtCore, QtGui, QtWidgets, uic

Ui_TabWidget, QtBaseClass = uic.loadUiType(qtcreator_file)

class TabWidget(QTabWidget, Ui_TabWidget):
    def __init__(self):
        QtWidgets.QTabWidget.__init__(self)
        Ui_TabWidget.__init__(self)
        self.setupUi(self)
        self.pushButtonGood.clicked.connect(lambda : self.writeOutliers(False))
        self.pushButtonOutliers.clicked.connect(lambda : self.writeOutliers(True))

        self.shortcut_open = QShortcut(QKeySequence('K'), self)
        self.shortcut_open.activated.connect(lambda : self.writeOutliers(True))

#######编辑######## 由于评论,问题解决了。请参阅下面的解决方案。

from PyQt5.QtGui import QIcon, QPixmap, QKeySequence
from PyQt5 import QtCore, QtGui, QtWidgets, uic

Ui_TabWidget, QtBaseClass = uic.loadUiType(qtcreator_file)

class TabWidget(QTabWidget, Ui_TabWidget):
    def __init__(self):
        QtWidgets.QTabWidget.__init__(self)
        Ui_TabWidget.__init__(self)
        self.setupUi(self)
        self.pushButtonGood.clicked.connect(lambda : self.writeOutliers(False))
        self.pushButtonOutliers.clicked.connect(lambda : self.writeOutliers(True))

        self.pushButtonGood.clicked.connect(self.setFocus)

self.setFocus 在第一次点击 pushButtonGood 时将键盘焦点放在编辑文本的其他地方。

然后在QTdesigner中用“Editeur de Propriétés”定义按钮的快捷键。

做一个复杂的捷径'ctrl+K'