Russian Qt Forum

Qt => Model-View (MV) => Тема начата: fear от Март 28, 2009, 18:40



Название: Форматирование чисел (qtableview + qstandarditemmodel)
Отправлено: fear от Март 28, 2009, 18:40
В qtableview числа по-умолчанию отображаются в виде: 1000, 10000, 8945555.
Каким образом можно представить числа в виде: 1 000, 10 000, 8 945 555, т.е. с отступом между тысячами, миллионами, и т.д.?

Один из возможных вариантов переопределение метода data() и возвращение форматированной строки для Qt::DisplayRole, но как быть в случае, когда используется qstandarditemmodel?


Название: Re: Форматирование чисел (qtableview + qstandarditemmodel)
Отправлено: Пантер от Март 28, 2009, 19:45
Нужно использовать делегат.


Название: Re: Форматирование чисел (qtableview + qstandarditemmodel)
Отправлено: fear от Март 29, 2009, 00:00
Нужно использовать делегат.
каким образом?


Название: Re: Форматирование чисел (qtableview + qstandarditemmodel)
Отправлено: Rcus от Март 29, 2009, 00:20
Поскольку нужно только изменять отображение, то можно наследоваться от QStyledItemDelegate и переопределить метод paint.
Для примера можно посмотреть на ./src/gui/itemviews/qstyleditemdelegate.cpp:406, Нужно только поменять в параметре QStyleOptionViewItemV4 поле text на отформатированную строку.


Название: Re: Форматирование чисел (qtableview + qstandarditemmodel)
Отправлено: pastor от Март 29, 2009, 10:11
А можно наследоваться от QItemDelegate и переопределить метод drawDisplay

//upd

Или переоперделить displayText в QStyledItemDelegate


Название: Re: Форматирование чисел (qtableview + qstandarditemmodel)
Отправлено: fear от Март 29, 2009, 14:37
переоперделить displayText в QStyledItemDelegate

спасибо, то что нужно!  :)