查看Qt doc,处理页面之间共享对象的正确方法是使用QWizardPage :: registerField和QWizardPage :: field。 我个人认为更简单,因为我们在C ++下,在其构造函数中传递给QWizardPage,指向我的共享对象的指针,因为共享资源上的cuncurrent访问没有风险。每个QWizardPage都安全地更改该对象的值,并且它在页面之间共享,因为指针位置相同。 我错过了什么?为什么需要这样的方法?
答案 0 :(得分:0)
它们是不同的方法:
使用field
- API,您不会更改界面,但然后在界面中未定义哪些字段存在。这意味着您应该单独记录它们。在我拥有众多领域时,这似乎是更好的方式。
另请注意向导的自动验证:
如果在注册属性时将星号(
*
)附加到名称,则该字段是必填字段。当页面具有必填字段时,仅当填写了所有必填字段时,才会启用下一步和/或完成按钮。要考虑“填充”字段,
QWizard
只是检查字段的当前值是否与原始值(调用initializePage()
时的值)相等。对于QLineEdit
和QAbstractSpinBox
子类,QWizard
还会检查hasAcceptableInput()
是否返回true
,以兑现任何验证程序或掩码。 如你所见:它主要是一个便利功能。在处理大型项目时,它可能会让您免于重新编译大量内容。
如您所见:它主要是一种便利功能。在处理大型项目时,它可能会让您免于重新编译大量内容。