Переопределяем QStyledItemDelegate. У него есть функция
displayText
, превращающая значение в текст. Можно её переопределить (то, что изначально, мне не слишком нравится, несколько миллионов уже 5,67e+6), но не в этом дело.
QWidget* LineEditDelegate::createEditor(
QWidget* parent,
const QStyleOptionViewItem& option,
const QModelIndex&) const
{
QLineEdit* edit = new QLineEdit(parent);
edit->setLocale(option.locale); // важно! — локаль потом потребуется
return edit;
}
void LineEditDelegate::setEditorData(
QWidget* editor,
const QModelIndex & index) const
{
QLineEdit* currEdit = dynamic_cast(editor);
QVariant var = index.model()->data(index);
QString text = displayText(var, editor->locale());
currEdit->setText(text);
}