向导中的必填字段
Mandatory fields in Wizard
我已经使用GUI创建了一个向导,所以我的页面都是UI的一部分。
现在,在其中一个页面上,我想使字段成为必填字段。从查看 API 来看,似乎有一个registerField()
函数,该函数还可以确保在填写字段之前下一个按钮不可用。但是,该功能受QWizardPage
保护,这意味着我无法设置它。有没有办法在不需要创建新类的情况下执行此行为?
我知道我可以创建一个新类,但我正在考虑如果我创建更多页面,那么我需要为我拥有的每个页面创建类。我也认为对于这样一个简单的案例,感觉有点矫枉过正。
Qt以这种方式设计QWizardPage,因为它是负责字段逻辑的页面,而不是其他类。但是如果你仍然想使用这个(设计不好的)模式,你可以简单地创建带有公共成员的QWizardPage包装器,该包装器调用受保护的成员,并使用它代替QWizardPage。请记住,页面有一些逻辑,最好将该逻辑与其他类分开。此外,如果你有一些类似的页面,你可以重用一个带有一些参数的类
要使用 registerField 将字段设置为必填字段,您只需设置其名称结尾为"*"。
前任:
QLineEdit* nameLineEdit = new QLineEdit();
registerField("name*", nameLineEdit);
这样,只有当您在 nameLineEdit 中写入某些内容时,才会启用继续的按钮。请查看文档 QWizardField#registerField。
相关文章:
- 将结构字段的类型展开为可变模板参数
- 将位字段导出到数组
- 为了方便起见,我应该避免公开私有字段变量吗
- 当字段可以为null时,如何使用C++接口在Avro中写入数据
- 在java中读取c++字节的位字段
- 链接器找不到在虚拟类 c++ 中访问的静态字段的符号
- 私有字段对象与私有继承?
- 声明没有默认构造函数的字段
- C++内存模型和位字段的最大序列
- 声明为无效的变量或字段'...' Ardunio 编译器上的错误
- 如何在QByteArray中放置和检索位字段而不会感到痛苦?
- C++ win32 如何使密码字段可选并启用复制和粘贴?
- 如何通过UDP接收QByteArray并将其解析为位字段结构?
- 仅匹配集合中的某些字段
- 结构字段名称与 GDB 中的 STL 数组冲突
- 如何使用位字段将数据从二进制文件复制到结构中?
- 结构体和类的不同大小(),彼此具有相同的字段类型
- 如何避免在数据结构中包含存储为字段的类?
- 聚合初始化和删除的复制构造函数,也称为不可复制的 obejcts 作为字段
- 向导中的必填字段