QLineEdit和keyPressEvent

时间:2017-10-24 21:53:04

标签: python-3.x pyqt pyqt5

我正在python3上学习PyQt5而且我在将keyPressEvent与QLineEdit关联时遇到了一些麻烦。

我想将keyPressEvent与QLineEdit相关联,这样当我按下一个选择了LineEdit框的键时,就会触发一个动作。

这是我想要实现的一个例子:

  • 我在LineEdit Box中写了一些东西
  • 我按一个键(比如说'输入')
  • 我在LineEdit Box中写的内容打印在终端
  • 如果我取消选择Box或在我的GUI中选择另一个对象(即另一个LineEdit Box)并按Enter键,则不会触发上一个操作。

这里是我想要实现此功能的代码示例:

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(400, 300)
        self.lineEdit = QtWidgets.QLineEdit(Dialog)
        self.lineEdit.setGeometry(QtCore.QRect(90, 40, 113, 21))
        self.lineEdit.setObjectName("lineEdit")
        self.lineEdit_2 = QtWidgets.QLineEdit(Dialog)
        self.lineEdit_2.setGeometry(QtCore.QRect(90, 80, 113, 21))
        self.lineEdit_2.setObjectName("lineEdit_2")

        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "Dialog"))


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    Dialog = QtWidgets.QDialog()
    ui = Ui_Dialog()
    ui.setupUi(Dialog)
    Dialog.show()
    sys.exit(app.exec_())

我希望有人可以帮助我!

0 个答案:

没有答案