我有一个QWizardPage
可以选择现有名称或在 QLineEdit 中输入新名称的地方。新名称必须是唯一的,因此我重载QWizardPage.isComplete()
以验证新名称是否唯一。
然后文档说,QWizardPage.completeChanged
只要状态发生变化,就必须发出它。所以我QLineEdit.textChanged
像这样使用插槽:
@Slot(str)
def on_lineEdit_textChanged(self, text):
self.completeChanged.emit()
#QtCore.QTimer.singleShot(1, lambda: self.setFocus())
但是,每次您在 QLineEdit 中输入内容时,它都会失去焦点。因此,每次按键后,您都必须再次单击 QLineEdit 才能继续。所需的行为是让 QLineEdit 保持焦点,以便可以完全输入新名称,而不仅仅是单个字符。
我尝试返回焦点(注释掉的行),但这没有效果。我该如何解决?