Russian Qt Forum
Августа 26, 2025, 23:53 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как заставить представление считывать данные из модели для всех ячеек сразу ?  (Прочитано 5777 раз)
Cyrax
Гость
« : Января 14, 2008, 21:16 »

Как заставить представление считывать данные из модели для всех ячеек сразу и не дёргать модель при скроллинге. Т.е. за счёт большего расхода памяти.
Тормоза раздражают...
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #1 : Января 14, 2008, 21:20 »

Для этого надо свое представление делать, читать данные, кэшировать и отображать соответственно.
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Cyrax
Гость
« Ответ #2 : Января 14, 2008, 22:22 »

Желательно бы стандартным обойтись. Может политику какую установить...
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #3 : Января 14, 2008, 23:28 »

стандартные представления и так работают достаточно быстро.

а может, проблема именно в модели? а не в представлении?
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Cyrax
Гость
« Ответ #4 : Января 14, 2008, 23:50 »

У меня модель (посредством Manager'а) долго "запросы" представления выполняет. Вполне возможно, что можно заметно оптимизировать манипуляции модели с данными, но этой проблемы можно было бы избежать, если б проедставление сразу всё считало и хранило в памяти. Вначале пришлось бы чуть больше подождать (при загрузке всей таблицы), но зато потом не было бы тормозов...
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #5 : Января 15, 2008, 00:42 »

А какой объем данных используется?
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #6 : Января 15, 2008, 01:37 »

я бы начал с модели...
ибо представлений может быть 100 вариантов, и прикручивать к каждому из них кэш, чтобы нивилировать тормоза модели имхо не есть гут...
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Alex03
Гость
« Ответ #7 : Января 15, 2008, 07:32 »

я бы начал с модели...
ибо представлений может быть 100 вариантов, и прикручивать к каждому из них кэш, чтобы нивилировать тормоза модели имхо не есть гут...
+1

Cyrax или модифицируй свою модельку, или напиши промежуточную, которая выгребает все денные из твоей и предоставляет их вьюхе(ам). А вьюха не то и вьюха, чтобы только отображать данные, иначе модели нафиг не нужны.
Записан
Tonal
Гость
« Ответ #8 : Января 15, 2008, 08:42 »

Какой объем данных?
Кешь я бы прикрутил к Manager-у (Racheengel вроде именно это имел в виду?)
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #9 : Января 15, 2008, 12:00 »

Именно. И просмотреть, какие сигналы эмитятся при обновлении, возможно, их надо бы отключить на этот период.
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #10 : Января 15, 2008, 12:50 »

Какой объем данных?

Я хотел узнать у автора, какой объем данных хранит моделька (кол-во строк\столбцов), что возникают проблемы со скролом.

Я сейчас юзаю свою модель, к которая содержит 4 столбца и 640000 строок. Немалейшей задержки при скроле (Винда, Линукс).

По теме: имхо, проблема в моделе, а не во вьюхе
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Deiv
Гость
« Ответ #11 : Января 18, 2008, 09:42 »

Пардон.
У меня сложилось впечатление что автор работает с SQL данными.
Соответственно модель должна быть QSqlQueryModel.
в этом случае будет достаточно:
Код:
while (model->canFetchMore()) {
    qDebug() << "Loaded fetchMore [" << model->rowCount() << "]";
    model->fetchMore();
    // if ( model->rowCount() > 1000 ) break; // для начала хватит ~1000 записей
}
кстати fetchMore(); грузит кажется по 255 записей, можно както это количество регулять?

ЗЫ: в случае если впечатление сложилось неверно - подсказка бесполезна  Обеспокоенный
Записан
ритт
Гость
« Ответ #12 : Января 18, 2008, 10:29 »

дэйв, подсказка бесполезна

[qoute]кстати fetchMore(); грузит кажется по 255 записей, можно както это количество регулять?[/qoute]
программно нельзя. это константа
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.025 секунд. Запросов: 20.