我想动态构建一个表单来编辑一组属性(例如从xml文件中编辑)。
最重要的是,我想用一组规则(理想情况下也是动态加载)对每个属性(强制值/可选值)进行验证。 这些规则可以与单个字段相关联(允许值,范围......),但也可以链接多个字段(条件验证)。
我希望能够“即时”保存结果(只要字段失去焦点)。
有人有良好的领导能让我入手吗? 这是我到目前为止所发现的:
我可以从Qt属性浏览器框架开始动态表单生成。我可以扩展这个框架以满足我的需求。
关于验证,我读到了QValidator,这似乎是一个好的开始。但是,我找不到涉及多个字段的任何内容(交叉参数验证)
QSettings框架很好地完成了这个自动保存功能,我想我可以重用它。
我只是想确定自从没有错过一些现有的框架来处理我的目标 这似乎是一个相对标准的事情。
答案 0 :(得分:1)
假设表单的字段是 fixed 。然后,您可以使用QValidator
的共享实例通过在列表 / 字典 / 地图上运行验证来验证所有字段中的文本包含指向字段的指针。 list / * dictionary * / map 必须通过动态填充和清除,并在QValidate::validate
内对其进行硬编码指针。如果不允许QValidator
共享,则必须创建单独的共享并执行跨域验证。
或者,您可以使用 Qt的Signal-Slot 机制在您的字段中的文本发生更改时实施验证。
我不知道QSetting,并且会使用完全相同的信号槽机制进行自动保存。