2010-11-19 39 views
1

你如何在Qt中使用MV?我已經試過這兩種方法:你使用Qt Model-View架構的首選模式是什麼?

  1. 如果現有/遺留 代碼「數據」 - 班的,我使用模型 作爲幌子。 模型實現類獲取對數據的引用 ,並在模型項訪問 調用上調用其 函數。

  2. 對於新的實現我得到 從QAbstractModel數據類。

有沒有其他的方法可以做到這一點?

+0

FWIW,這與我的工作方式類似。 1)如果存在使用* Widget類的現有代碼,請將其保留,除非需要進行功能性檢查。 2)如果存在現有/遺留代碼數據類,請將該模型用作外觀。 3)如果我需要一個新的實現,那麼固有的數據與數據有多大關係?如果數量很好,我創建一個數據類並將該模型用作外觀,以便這些方法通常與UI細節分離。 4)其他來自QAbstractModel。 – 2010-11-19 19:16:42

回答

1

我最終採取的方法與您建議的方法類似。我目前正在使用Facade將我的遺留數據模型映射到QAbstractModel中。

起初門面有點太複雜,但是我慢慢地將功能從正面模型中拉出來,並將其推入到我的數據模型中。然後有一天我會完全移除門面,以便我的模型成爲模型。

擁有一個模型會讓我的頭部受傷更少。

-1

Qt中的MV代碼有點混亂,感覺實施起來很尷尬。特別是如果你必須實現分層列表(樹視圖)。

根據您的需要,我發現使用QListWidget,QTableWidgetQTreeWidget便利類在某些情況下可能會更不痛苦。

+0

-1對不起,我不是要求一個替代方案,而是在Qt中使用MV的最佳實踐。其實我沒有發現他們混亂。相反。各種模型(樹,表格列表)適合我。對不起,這些舊的便利類不是非平凡應用程序中的選項。 – 2010-11-19 11:15:40

+0

在這種情況下... http://doc.qt.nokia.com/4.7/model-view-programming.html – BastiBen 2010-11-19 11:21:10

相關問題