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

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

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

有人有好的线索让我开始吗?
这是我到目前为止发现的:

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

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

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

我只是想确保我没有错过一些现有的框架来处理我的目标,因为这似乎是一个相对标准的事情。

4

1 回答 1

2

假设表单的字段是固定的。然后,您可以使用 a 的共享实例 来验证所有字段中的文本,方法是在包含指向字段的指针的列表/字典/映射上QValidator运行您的验证。列表/*dictionary*/映射必须通过动态填充和清除,并在内部硬编码指向它的 指针。如果不允许共享,您将必须创建单独的并执行跨字段验证。QValidate::validateQValidator

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

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

于 2012-10-20T17:41:29.580 回答