查看Qt文档,处理页面之间共享的对象的正确方法是使用QWizardPage::registerField和QWizardPage::field。我个人认为更简单,因为我们在C++下,在它们的构造函数中向QWizardPage传递一个指向我的共享对象的指针,因为对共享资源的非当前访问没有风险。每个QWizardPage都会安全地更改该对象的值,并在页面之间共享,因为指针位置是相同的。我遗漏了什么?为什么需要这样的方法?
发布于 2014-10-14 20:03:24
它们是不同的方法:
带有共享指针的
field-API你不需要改变接口,但这样就不会定义接口中存在哪些字段。这意味着您应该分别对它们进行记录。在我看来,当有大量字段时,这是更好的方法。- Also note the automatic validation by the wizard:如果在注册属性时名称后附加了星号(*),则该字段为必填字段。如果页面具有必填字段,则仅当填写了所有必填字段时,才会启用下一步和/或完成按钮。
要考虑字段“已填充”,QWizard只需检查字段的当前值是否不等于原始值(调用initializePage()时的值)。对于QLineEdit和QAbstractSpinBox子类,QWizard还检查hasAcceptableInput()是否返回true,以遵守任何验证器或掩码。正如你所看到的:它主要是一个方便的特性。在处理更大的项目时,这可能会让你不必重新编译很多东西。
正如你所看到的:它主要是一个方便的特性。在处理更大的项目时,这可能会让你不必重新编译很多东西。
https://stackoverflow.com/questions/26340201
复制相似问题