我有一个很棒的应用程序和一些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))
答案 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()