Russian Qt Forum

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



Название: формат отображения в Q...View
Отправлено: unkeep от Сентябрь 24, 2013, 16:51
возможно очень глупый вопрос, но как изменить формат отображённых в представлении данных?

у меня в базе лежит 12903801001(numeric)
а в TreeView отображается 1.29038e+10   (data(index, Qt::DisplayRole) == QVariant(double, 1.29038e+10) )

и всё бы ничего, пусть отображается как хочет, но фильтр по 12903801001 в QSorFilterProxyModel  работает не так как надо :(

подозреваю что надо переопределять data,  и данные для отображения переводить в другой формат...


Название: Re: формат отображения в Q...View
Отправлено: VPS от Сентябрь 24, 2013, 17:45
Скорее всего в исходной модели они лежат в таком виде...


Название: Re: формат отображения в Q...View
Отправлено: unkeep от Сентябрь 24, 2013, 17:51
Скорее всего в исходной модели они лежат в таком виде...
в модель вычитывается из базы c типом QVariant без каких либо преобразований


Название: Re: формат отображения в Q...View
Отправлено: VPS от Сентябрь 24, 2013, 18:07
Тогда можно для представления (в данном случае, лучше наверное, для отдельной колонки) создать свой делегат от класса "QStyledItemDelegate" и переопределить нужный метод (если для роли "Qt::DisplayRole", то "QStyledItemDelegate::displayText").