繁体   English   中英

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

[英]Solved: PyQt5 push a button with a keyboard stroke

我正在开发一个 PyQt5 gui。 我尝试实现一个按钮,当我在键盘上按下一个键时会按下该按钮。 让我们说“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))

#######EDIT######## 多亏了评论,问题得以解决。 请参阅下面的解决方案。

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 时获得其他地方的键盘焦点pushButtonGood

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

做一个复杂的快捷键'ctrl+K'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM