2011-04-26 46 views
0

請耐心等待,因爲這是一個稍微有點主觀的問題,但我知道最佳實踐後可能是常見情況。Qt如何在表格中顯示和編輯數據

我有拆分到其中我使用Qt來操縱多個(源碼)表中的數據。 (sql)視圖是顯示多個表中數據的一種方式,但我希望能夠更新值。 讓我們用一個三表的例子,說房子。 這三個表格通過外鍵鏈接,例如Area表格,House表格和Furniture表格。有一個與外鍵鏈接的1:多關係:面積:房子,房子:傢俱 我想要一個帶有區域的UI項目填充House UI項目,然後填充一個Furniture UI項目。通過UI項目,我的意思是類似於可編輯列表或一系列lineEdits/Spinners(取決於值的類型),任何事情都是如此。

我只想澄清一點,我瞭解如何使用qsqlrelationaltablemodel和qsqlrelationdelegate。當我更新單個表時,這些工作正常,但不會更新從多個表上的連接創建的(sql)視圖。 我追求的解決方案可以讓我有效地處理來自多個表的數據,包括更新值。

我應該這樣做有三個型號,更新每個過濾器,並使用鏈接到每個模型的視圖? 或者我可以插入一切到一個單一的樹模型? 或者我應該在創建一個自定義模型,或者只是不使用模型/視圖和手動填充UI?

我都使用相同的數據庫作爲實驗多模型嘗試了前一段時間,他們也做的好是我所希望的行爲在一起。這是我詢問最佳實踐的主要原因。

你可以提供任何意見,許多讚賞。

+0

您的模型看起來不錯,典型的關係模型 - 但你問如何根據另一個ID更新一個表? – 2011-04-26 14:16:31

+0

你看過QSqlRelationalTableModel嗎?我不完全確定你的意思是一個表UI填充另一個表填充另一個表。也許你可以在你的例子中更具體地闡明?在你的視圖中的關係模型和代表之間可能會得到你正在尋找的東西。但是,再次,這是一個猜測,不要說我認爲*你在說什麼。 – 2011-04-26 19:10:04

+0

嗨。 @ M.R nope我得到了如何根據另一個id來更新表格。 – mike 2011-04-26 19:20:49

回答

0

我想我的問題並不盡如人意,也就是因爲我真的不知道要問的正確問題。 我一直在尋找一種方法來表示不同的UI項目上的多個表中的數據,但不一定直接映射到tableview。

我到目前爲止解決方案是使用不同的模型,從手動數據庫填充。任何需要手動編輯的值的編輯。

到目前爲止似乎工作正常。 我選擇的一個方便的提示是將額外的數據放在不同的角色Qt :: UserRole中。這是我可以在單列樹視圖中存儲相關的UUIDS(我的數據庫鍵都是UUID),並使用它們來獲得相當直接的數據庫訪問。額外的數據顯然可以放在Qt :: UserRole + n中,儘管我還沒有嘗試過。

相關問題