我是Qt模型/視圖編程的新手,並已閱讀Qt文檔中的Editable Tree Model Example。此示例中的一個很好的功能是,由於重寫了QModelIndex QAbstractItemModel::index
和QVariant QAbstractItemModel::data
,單個對象(TreeItem
)封裝了後面顯示在包含兩列(name
和description
)的單行中的兩條信息。現在兩個QStandardItem對象可以處理來自同一個對象的不同屬性嗎?
,我也有一個自定義類(如Foo
)包含的信息(Foo::m_name
和Foo::m_description
)兩片,我想在包含兩列單行來顯示,但不是子類QAbstractItemModel
我想繼承QStandardItemModel
因爲它有很多功能。但是,似乎我必須爲我的每個Foo
對象創建兩個QStandardItem
對象,一個處理m_name
,另一個處理m_description
。我如何在內存中保留一個Foo
對象並讓這兩個QStandardItem
對象引用它?
在我的問題有一個必須爲每個(行,列)對創建QStandardItem
對象隱含的假設。請讓我知道如果這是錯誤的。
我宣佈'Q_DECLARE_METATYPE(富* )並在'QStandardItem'中存儲'QVariant'以避免存儲'Foo'對象。然而,這仍然使我不必實例兩個'QStandardItem'對象爲每個'Foo'對象,我希望有一些設計上的解決方法。 –
jmborr
正如我說:'在使用QStandardItemModel'每單元一個'QStandardItem'作爲其設計原則。它的用例是將數據存儲在模型中,而不是作爲存儲在別處的數據的接口。 –