2012-05-09 27 views
7

Chcę przechowywać niestandardowe dane za pomocą modelu. Do tego jestem nieco zdezorientowany jako model pozycji do wyboru dla podklasy. Potrzebuję wyjaśnienia, który jest najlepszym modelem do podklasy? A także potrzebuję zalet QAbstractItemModel nad QStandardItemModel?Jakie są zalety QAbstractItemModel nad QStandardItemModel?

Dzięki!

Odpowiedz

2

To zależy od Twoich potrzeb. Użyj QStandardItemModel, jeśli chcesz tylko przechowywać własne dane i nie chcesz pisać własnej logiki modelu. Ten jest ogólny, możesz go użyć do niestandardowych danych bez podklasy.

Z drugiej strony, jeśli chcesz napisać własną logikę modelu, wybierz QAbstractItemModel. To jest klasa abstrakcyjna. Oznacza to, że nie ma żadnego zaimplementowanego zachowania, jest po prostu "interfejsem". Mówi, jakie metody powinien wdrożyć twój model, aby mógł być użyty jako inna klasa ItemModel w Qt.

+0

Dzięki kousalik! Jakieś inne istotne różnice? – Dev

+0

Nie, QStandardItemModel jest implementacją (podklasą) QAbstractItemModel – Kousalik

+0

@Kousalik czy mógłbyś rozwinąć to, co rozumiesz przez "logikę modelu"? Jaką konkretną logikę modelu implementuje QStandardItemModel, czego nie robi AbstractItemModel? Np. Jeśli chcesz, aby Twój model był edytowalny, czy jest to łatwiejsze dzięki StandardItemModel? Jestem po prostu ciekawy, ponieważ używam QAbstractItemModel i zastanawiam się, dlaczego powinienem lub nie powinienem się przełączyć na QStandardItemModel. – neuronet

Powiązane problemy