首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QWizard: QWizardPage::registerField与共享对象指针

QWizard: QWizardPage::registerField与共享对象指针
EN

Stack Overflow用户
提问于 2014-10-13 20:37:55
回答 1查看 227关注 0票数 0

查看Qt文档,处理页面之间共享的对象的正确方法是使用QWizardPage::registerField和QWizardPage::field。我个人认为更简单,因为我们在C++下,在它们的构造函数中向QWizardPage传递一个指向我的共享对象的指针,因为对共享资源的非当前访问没有风险。每个QWizardPage都会安全地更改该对象的值,并在页面之间共享,因为指针位置是相同的。我遗漏了什么?为什么需要这样的方法?

EN

回答 1

Stack Overflow用户

发布于 2014-10-14 20:03:24

它们是不同的方法:

带有共享指针的

  • 你需要为你想要共享的每个对象都有一个成员,这意味着你需要改变你的类的接口。

  • 使用field-API你不需要改变接口,但这样就不会定义接口中存在哪些字段。这意味着您应该分别对它们进行记录。在我看来,当有大量字段时,这是更好的方法。

代码语言:javascript
复制
- Also note the automatic validation by the wizard:

如果在注册属性时名称后附加了星号(*),则该字段为必填字段。如果页面具有必填字段,则仅当填写了所有必填字段时,才会启用下一步和/或完成按钮。

要考虑字段“已填充”,QWizard只需检查字段的当前值是否不等于原始值(调用initializePage()时的值)。对于QLineEditQAbstractSpinBox子类,QWizard还检查hasAcceptableInput()是否返回true,以遵守任何验证器或掩码。正如你所看到的:它主要是一个方便的特性。在处理更大的项目时,这可能会让你不必重新编译很多东西。

正如你所看到的:它主要是一个方便的特性。在处理更大的项目时,这可能会让你不必重新编译很多东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26340201

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档