Russian Qt Forum

Qt => Model-View (MV) => Тема начата: Kurles от Сентябрь 24, 2013, 16:24



Название: Кэшировние в QAbstractItemModel::data(...) const
Отправлено: Kurles от Сентябрь 24, 2013, 16:24
Добрый день!

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


Название: Re: Кэшировние в QAbstractItemModel::data(...) const
Отправлено: VPS от Сентябрь 24, 2013, 16:44
Но проблема в том, что сабжевый метод константный, соответственно поменять значение переменных-членов в данном методе не получается.
А использовать mutable?

P.S.: вот (http://alenacpp.blogspot.ru/2005/10/mutable-constcast.html) пример использования.