我設計了一個Qt用戶界面,並且具有相同型號(汽車)兩種不同的意見(QGraphicsObject
類)。兩種觀點,一種模式:如何更新視圖當模型改變
當汽車的模型進行更新(在兩個中的一個小部件),我想雙方的意見進行更新(當然還有同樣適用於模型)。
直觀的方式做,這是更新的模式,並讓意見搭上「信號」或類似的東西,當發生這種情況,自我更新。我想知道這是一個推薦的行爲(在MVC中),因爲它迫使模型與其視圖有一些雙向連接(而在MVC模型中不應該有它的視圖列表)。
而且,什麼是在Qt來實現這個好辦法? (使用Qt的信號?提出一個標誌,當模型已被更改?)
但是,我如何明確地將模型連接到Qt中的視圖?我其實只是認爲我的模型是我的視圖的一個屬性(一個自定義的''QGraphicsObject'')? – halflings 2013-04-24 14:46:03
QAbstractItemModels可以通過setModel()連接到QAbstractItemView子類。但是,這是相當表/樹/列表特定的。如果你有更少的數據,而不是你希望監視的狀態變量(而不是列表等),那麼保存狀態併發送變化信號的模型包裝器QObject可能更適合。沒有任何模式可以捕獲所有用例,而是取決於您的模型類型。 – 2013-04-24 18:15:42