Russian Qt Forum

Qt => Model-View (MV) => Тема начата: Setner от Январь 21, 2013, 20:57



Название: Widget vs View, не понимаю по поводу производительности
Отправлено: Setner от Январь 21, 2013, 20:57
Говорят, что модели на основе Widget'ов менее производительней, чем модели на основе QAbstracItemModel+Q...View. Однако, я попробовал создать свою модель, и увидел, что там те же виджеты по сути. Тогда на основе чего строится утверждение, что Widget модель лучше использовать в небольших списках, а QAbstractItemModel+View представление в крупных?


Название: Re: Widget vs View, не понимаю по поводу производительности
Отправлено: _OLEGator_ от Январь 21, 2013, 21:05
На основе знаний и понимания принципов работы обоих методов в Qt.


Название: Re: Widget vs View, не понимаю по поводу производительности
Отправлено: Setner от Январь 21, 2013, 21:08
На основе знаний и понимания принципов работы обоих методов в Qt.

Конкретнее...
Я не понимаю что даёт различие в производительности при одной и той же структуре списков.


Название: Re: Widget vs View, не понимаю по поводу производительности
Отправлено: _OLEGator_ от Январь 21, 2013, 21:28
Много в чем производительность. Как минимум в отрисовке и объеме потребляемой памяти. Напиши тест по отображению 5000 кнопок с помощью этих 2х способов - сразу ощутишь разницу.


Название: Re: Widget vs View, не понимаю по поводу производительности
Отправлено: Setner от Январь 21, 2013, 21:36
Много в чем производительность. Как минимум в отрисовке и объеме потребляемой памяти. Напиши тест по отображению 5000 кнопок с помощью этих 2х способов - сразу ощутишь разницу.

То есть Widget модель просто осталась от старых версий Qt, я правильно понимаю? По сути она не нужна, но её просто оставили для переноса приложений со старых версий на новые. С тех пор в Qt переработали код отрисовки и снизили память.

Это не очевидно сразу, на самом деле.


Название: Re: Widget vs View, не понимаю по поводу производительности
Отправлено: Bepec от Январь 22, 2013, 07:13
В корне неверно.

Виджеты - для постоянного отображения информации на экране простой информации. Они не требуют высокой производительности и работы с большими массивами данных.

Модель-View - для отображения больших массивов данных, изменяющихся/добавляющихся в каждый момент времени. В них оптимизирована работа с данными.

Если и так непонятно, то:

Накидать интерфейс за 5 минут с полным функционалом и 10 минут на добавление свойств - виджеты.

Написать свою модель, отладить работу модели - 20 минут. Причём модель будет чётко ориентированной на один вид данных. (допустим структуру из стандартных типов).