Python Pyqt5 QPlainTextEdit当用户离开检查值时

时间:2018-06-04 20:18:16

标签: python pyqt5

我有一个很棒的应用程序和一些QPlaintextEdit。 当用户以他想要的输入结束时,我需要检查输入。 如果检查失败,则应更新输入。

我认为这是焦点,但我找不到合适的解决方案。

我想要实现的代码示例:

self.plainTextEdit_2.focusOutEvent(lambda:self.check_input(Dialog14)) #### or something like this

def check_input(self,Dialog14):
    if int(self.plainTextEdit_2.toPlainText()) > num_pages:
        self.plainTextEdit_2.setPlainText(str(num_pages))

1 个答案:

答案 0 :(得分:1)

问题是您无法连接到QTextEdit的focusOutEvent。它不是信号而是事件处理程序。您必须覆盖该类并从事件处理程序发出信号。

    self.plainTextEdit = CustomTextEdit()
    self.plainTextEdit.focus_out.connect(lambda:self.check_input(Dialog14))


class CustomTextEdit(QtWidgets.QTextEdit):

    focus_out = QtCore.pyqtSignal()

    def __init__(self):
        super().__init__()

    def focusOutEvent(self, event):
        super().focusOutEvent(event)
        self.focus_out.emit()