Python PyQt5双旋转框返回无值

Python PyQt5双旋转框返回无值,python,pyqt,Python,Pyqt,我有:(有一些类方法,它们来自QWizard) 在代码的其他地方 id = self.currentId() if id == 1: print self.field("name") # this rightly give me a name from LineEdit print self.field("roll") # but this give me just None, why? 当我改变 QtWidgets.QDoubleSpinBox()

我有:(有一些类方法,它们来自QWizard)

在代码的其他地方

id = self.currentId()
    if id == 1:
        print self.field("name") # this rightly give me a name from LineEdit
        print self.field("roll") # but this give me just None, why?
当我改变

QtWidgets.QDoubleSpinBox()

行:

很好

为什么我得到的是零而不是双值

编辑

我刚刚注意到,当我尝试将“滚动”字段设置为必填字段时

page.registerField("roll*", forms[1][1])

当我在程序中填写这个“旋转框”时,我不能单击“下一步”(下一步被禁用)。我的程序中有spinbox。我可以在那里设置值。但是这个字段似乎没有与QWizard(?)连接。

这个
QWizardPage
类只有一些小部件类型的内部知识。注册它不知道的小部件时,需要指定读取值的属性,以及值更改时发出的信号,作为字符串

对于
QDoubleSpinBox
这将是:

page.registerField("roll", forms[1][1], "value", "valueChanged")
< >小部件类型>代码> QWizardPage < /C> >已知的内容被列在C++文档中。

您还可以使用
QWizard
的方法全局注册此信息,这样您就不必每次调用
registerField()
时都指定它。要执行此操作,请致电:

my_wizard.setDefaultProperty("QDoubleSpinBox", "value", "valueChanged")

注意:这是向导的一种方法,而不是页面。

print self.field(“roll”)
中有打字错误(应该是“field”而不是“field”)。你的代码中是否存在同样的拼写错误?不,只是在帖子中的拼写错误。
page.registerField("roll*", forms[1][1])
page.registerField("roll", forms[1][1], "value", "valueChanged")
my_wizard.setDefaultProperty("QDoubleSpinBox", "value", "valueChanged")