Проблемы отображения значений 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 шт):
или изголяйтесь и определяйте свой тип, который QVariant будет преобразовывать как вам надо, или попроще - что-нибудь типа
#define myQVariantToString(v) QString::compare(v.typeName(),"char")?v.toInt():v.toString();
QLineEdit->setText(myQVariantToString(...));