Python 2.7 在PyQt中使用registerField
我试图使用QWizardPage类的registerField,但是PyQt的文档并没有提供示例。我完全按照以下文档进行了操作:Python 2.7 在PyQt中使用registerField,python-2.7,pyqt,Python 2.7,Pyqt,我试图使用QWizardPage类的registerField,但是PyQt的文档并没有提供示例。我完全按照以下文档进行了操作: @pyqtSignature("QString") def on_nome1_textChanged(self, text): self.registerField("nome1", QLineEdit, text, textChanged()) 但我得到了以下错误: Traceback (most recent call last): File "te
@pyqtSignature("QString")
def on_nome1_textChanged(self, text):
self.registerField("nome1", QLineEdit, text, textChanged())
但我得到了以下错误:
Traceback (most recent call last):
File "test.py", line 37, in on_nome1_textChanged
self.registerField("nome1", QLineEdit, text, textChanged())
NameError: global name 'textChanged' is not defined
我做错了什么?您应该先创建一个小部件,然后再将其注册为字段。大概是这样的:
myLineEdit=QtGui.QLineEdit()
myWizardPage.registerField("name",myLineEdit)
根据,如果使用的是QLineEdit
,则不需要更多参数:
QWizard知道最常见的Qt小部件。对于这些(或他们的
子类),您不需要指定属性或changedSignal
你可能还有另一个问题。根据nome1\u textChanged上的方法名
,我猜只要相应的lineEdit
文本更改,代码就会注册字段“name”
这不是字段的使用方式。该字段与小部件本身关联,而不仅仅是它的当前值。您应该只将小部件lineEdit
注册一次作为字段“name”。然后,每当lineEdit
文本更改时,该字段也将更改。要在向导的任何页面中访问lineEdit
的当前值,只需执行以下操作:
textInLineEdit=myWizard("name")
这些文档提供了两个完整的示例:和(还有,但没有使用registerField
)。小部件已经存在,我只是没有对代码提出疑问。我阅读了这部分文档,但不知道如何使用python。我使用self.registerField(“name”,self.nome1)
更改了您所做的部分myWizardPage.registerField(“name”,myLineEdit)
,它成功了。但是在textInLineEdit=myWizard(“name”)
中,什么是myWizard
?一个QWizard页面
应该是一个QWizard
页面,我将其命名为myWizard
。字段不仅可以在定义它们的页面上访问,还可以在QWizard