代码之家  ›  专栏  ›  技术社区  ›  Ευάγγελος Γρηγορόπουλος

用户离开检查值时python pyqt5 qplaintextedit

  •  -1
  • Ευάγγελος Γρηγορόπουλος  · 技术社区  · 8 年前

    我有一个很大的应用程序 QPlaintextEdit S. 当用户结束输入时,我需要检查输入。 如果检查失败,则应更新输入。

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

    我要实现的代码示例:

    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 回复  |  直到 8 年前
        1
  •  1
  •   MalloyDelacroix    8 年前

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