QT:使用字段间规则进行表单验证

时间:2012-10-20 16:26:22

标签: c++ qt

  1. 我想动态构建一个表单来编辑一组属性(例如从xml文件中编辑)。

  2. 最重要的是,我想用一组规则(理想情况下也是动态加载)对每个属性(强制值/可选值)进行验证。 这些规则可以与单个字段相关联(允许值,范围......),但也可以链接多个字段(条件验证)。

  3. 我希望能够“即时”保存结果(只要字段失去焦点)。

  4. 有人有良好的领导能让我入手吗? 这是我到目前为止所发现的:

    1. 我可以从Qt属性浏览器框架开始动态表单生成。我可以扩展这个框架以满足我的需求。

    2. 关于验证,我读到了QValidator,这似乎是一个好的开始。但是,我找不到涉及多个字段的任何内容(交叉参数验证)

    3. QSettings框架很好地完成了这个自动保存功能,我想我可以重用它。

    4. 我只是想确定自从没有错过一些现有的框架来处理我的目标 这似乎是一个相对标准的事情。

1 个答案:

答案 0 :(得分:1)

假设表单的字段是 fixed 。然后,您可以使用QValidator的共享实例通过在列表 / 字典 / 地图上运行验证来验证所有字段中的文本包含指向字段的指针。 list / * dictionary * / map 必须通过动态填充和清除,并在QValidate::validate内对其进行硬编码指针。如果不允许QValidator共享,则必须创建单独的共享并执行跨域验证。

或者,您可以使用 Qt的Signal-Slot 机制在您的字段中的文本发生更改时实施验证。

我不知道QSetting,并且会使用完全相同的信号槽机制进行自动保存。