gpt4 book ai didi

python - PyQt5 双旋转框不返回任何值

转载 作者:行者123 更新时间:2023-12-01 04:09:06 25 4
gpt4 key购买 nike

我有这个:(有类方法,继承自QWizard)

def getForms(self):
return [
(
QtWidgets.QLabel("Name"),
QtWidgets.QLineEdit()
),
(
QtWidgets.QLabel("Roll"),
QtWidgets.QDoubleSpinBox()
)
]

def registerFields(self, page, forms):
page.registerField("name*", forms[0][1])
page.registerField("roll", forms[1][1])

以及代码中的其他位置

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()

QtWidgets.QSpinBox()

线路:

print self.field("roll")

工作正常。

为什么我得到 None 而不是 double 值?

编辑

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

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

我在程序中填写了这个“旋转框”,我无法单击“下一步”(下一步被禁用)。我在程序中的表单中有旋转框。我可以在那里设置值。但看起来这个字段与 QWizard(?) 没有连接?

最佳答案

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

对于QDoubleSpinBox,这将是:

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

QWizardPage 知道的小部件类型列表列在 c++ 文档 here 中。 .

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

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

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

关于python - PyQt5 双旋转框不返回任何值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35187729/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com