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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Кэшировние в QAbstractItemModel::data(...) const  (Прочитано 2596 раз)
Kurles
Бывалый
*****
Offline Offline

Сообщений: 480



Просмотр профиля
« : Сентябрь 24, 2013, 16:24 »

Добрый день!

Такая "проблема": есть ItemModel на базе QStandardItemModel с довольно большим кол-вом айтемов, необходимо для каждого айтема через череду нескольких sql запросов задавать tooltip, и если это делать при создании модели, то, естественно, данная операция тормозит гуишный поток. Первое решение, пришедшее в голову - вытаскивать тултип из базы только по запросу Qt::ToolTipRole в переопределенном методе QAbstractItemModel::data(...) const работает довольно шустро, но напрягает постоянное обращение к БД, хотелось бы раз для айтема прочитать, а в следующий раз выдавать уже кешированное значение. Но проблема в том, что сабжевый метод константный, соответственно поменять значение переменных-членов в данном методе не получается. Вопрос: можно ли как-то обойти данное ограничение или есть какой-то более "православный" способ решить задачу?
Записан

Код
C++ (Qt)
while(!asleep()) sheep++;
VPS
Гость
« Ответ #1 : Сентябрь 24, 2013, 16:44 »

Но проблема в том, что сабжевый метод константный, соответственно поменять значение переменных-членов в данном методе не получается.
А использовать mutable?

P.S.: вот пример использования.
« Последнее редактирование: Сентябрь 24, 2013, 16:46 от vps » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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