Проблемы отображения значений char/uchar при получении их из QVariant

У меня есть QVariant, в котором хранятся значения целочисленных типов. В определенный момент эти значения выводятся в QLineEdit и QTableWiegetItem:

'''QLineEdit->setText(QVariant.toString())'''

'''QTableWidgetItem->setData(Qt::DisplayRole, QVariant.ToString())'''

Все типы, кроме char, отображаются как набор цифр, тогда как char - в виде символов. Можно корректно вывести через

'''QLineEdit->setText(QString::number(QVariant.toInt())'''

'''QTableWidgetItem->setData(Qt::DisplayRole, QString::number(QVariant.toInt())'''

но хотелось бы оставить всю логику по преобразованию значения в текст на QVariant и QLineEdit, чтобы вообще ничего не знать о типах.

Можно ли как-то настроить форматирование текста в QLineEdit, чтобы чтобы всегда выводились лишь цифры? Или мб это можно настроить в QVariant?

P.S нельзя избежать того, что в QVariant замест char будет лежать другой целочисленный тип, т.к. на типе завязана другая логика


Ответы (1 шт):

Автор решения: Sergey Tatarintsev

или изголяйтесь и определяйте свой тип, который QVariant будет преобразовывать как вам надо, или попроще - что-нибудь типа

#define myQVariantToString(v) QString::compare(v.typeName(),"char")?v.toInt():v.toString();
QLineEdit->setText(myQVariantToString(...));
→ Ссылка