2012-10-20 48 views
0
  1. 我想動態地構建一個表單來編輯一組屬性(比如從一個xml文件等)。最重要的是,我想用一組規則(理想情況下也是動態加載)爲每個屬性(必需值/可選值)執行驗證。 這些規則可以關聯到單個字段(允許的值,範圍,...),但也可以鏈接幾個字段(條件驗證)。QT:使用字段間規則進行表單驗證

  2. 我希望能夠保存結果「即時」(只要一個領域失去了重點)。

有人有一個很好的領導讓我開始?
這是我迄今發現:

  1. 我可以從動態表單生成Qt的屬性瀏覽器框架開始。我可以擴展這個框架以滿足我的需求。

  2. 關於驗證,我讀了關於QValidator這似乎是一個好的開始。然而,我找不到涉及幾個領域的任何事情(交叉參數驗證)

  3. QSettings框架很好地完成了這項自動保存功能,我想我可以重複使用它。

我只是想確保我不缺少一些現有的框架,因爲 對付我的目標好像做一個比較標準的事情。

回答

1

假設表格的字段是固定。然後,您可以使用QValidator的共享實例,通過在列表上運行您的驗證字驗證所有字段中的文本。/字典/地圖包含指向字段的指針。 列表/*字典*/地圖將不得不通過動態填充和清除,並指向它硬編碼QValidate::validate內。如果QValidator共享是不允許的,你將不得不創建個人並執行你的交叉字段驗證。

或者,您可以使用Qt的Signal-Slot機制來實現您的驗證,只要您的字段中的文本發生更改。

我不知道QSetting,並會使用非常相同的信號插槽機制來做自動保存。