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

2024-05-16 02:42:38 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我想这是有重点的,但我没有找到正确的解决办法

我想实现的代码示例:

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))

Tags: 代码用户self应用程序重点示例inputcheck
1条回答
网友
1楼 · 发布于 2024-05-16 02:42:38

问题是您无法连接到qtexted的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()

相关问题 更多 >