TableView.
В таблице имеется большое количество элементов (200 х 200). Каждый ход TableView запрашивает у модели все эти елементы, выходит 40000 вызовов каждый раз.
Вопрос: можно ли каким то образом вернуть модели сразу весь массив елементов, что бы она не вызывала для каждого елемента data ф-цию ? Или есть более эффективный способ нежели использовать TableView ?
П. С.: пробовал гуглить, ничего не нашел.
смотрел в примерах как сделали?
Да. Это я как раз переделал пример под себя. В примере TableView. И там тоже медлено работает.
1)всегда можно рисовать через canvas/qpainteditem. 2) вернуть из модели один раз QObject, который будет меняться и при изменении оповестит ячейку
в релизной сборке смотрел?
У меня последняя версия QT open source стоит. Это релизная сборка ?
вообще по идее модель должна сама посылать сигнал только о тех данных которые изменились
попробовал. Всеравно достаточно медлено.
И это будет быстрее чем использовать tableView ?
в примере похоже что вызывается dataChanged для всех ячеек
да. Странно что никак нельзя сделать чтоб ф-ция data вернула сразу массив ячеек. Так было бы быстрее.
там по идее надо поменять метод в модели nextStep, чтоб выкидывался dataChanged только на те облости которые изменились
если использовать Canvas/PaintedItem, то возможно
Попробовал выкидивать dataChanged только если ячейка изменилась. Результат одинаков
Обсуждают сегодня