7
我想使用模型存儲自定義數據。爲此,對於爲子類選擇哪個項目模型有點困惑。我需要澄清一下,這是繼承的最佳模型?而且我還需要通過QStandardItemModel的QAbstractItemModel的優勢?QAbstractItemModel優於QStandardItemModel的優點是什麼?
謝謝!
我想使用模型存儲自定義數據。爲此,對於爲子類選擇哪個項目模型有點困惑。我需要澄清一下,這是繼承的最佳模型?而且我還需要通過QStandardItemModel的QAbstractItemModel的優勢?QAbstractItemModel優於QStandardItemModel的優點是什麼?
謝謝!
這取決於您的需求。 如果您只是想存儲自定義數據並且不想編寫自己的模型邏輯,請使用QStandardItemModel
。這是通用的,您可以將它用於不帶子類的自定義數據。
另一方面,如果您希望編寫自己的模型邏輯,請選擇QAbstractItemModel
。它是抽象類。這意味着,它沒有實現行爲,它只是一個'界面'。它告訴你模型應該實現哪些方法,所以它可以用作Qt中的其他ItemModel類。
謝謝kousalik!任何其他主要差異? – Dev
不,QStandardItemModel是QAbstractItemModel的實現(子類) – Kousalik
@Kousalik您可以擴展您的'模型邏輯'的含義嗎? QStandardItemModel實現哪些特定的模型邏輯,哪些不是由AbstractItemModel完成的?例如,如果你希望你的模型是可編輯的,使用StandardItemModel更容易嗎?我只是好奇,因爲我一直在使用QAbstractItemModel,並且正在考慮爲什麼我應該或不應該切換到QStandardItemModel。 – neuronet