QtGui QTreeWidgetItem setData, содержащий число с плавающей точкой

Мне было интересно, могу ли я сохранить значения с плавающей точкой в ​​QTreeWidgetItem?

Когда я пытаюсь записать числа, используя setData(0,0, число), он округляет его до 6 цифр точности, что мне недостаточно. Я хочу сохранить точное значение с плавающей точкой для дальнейших расчетов.

2 ответа

Решение

Вы можете сделать одну из двух вещей, QVariant может хранить практически любой тип:

v = QtCore.QVariant(aFloat)
aFloat = v.toDouble()[0]

И вы бы сохранили QVariant в качестве данных.

Или вы можете установить любые произвольные атрибуты для элемента:

item = QtGui.QTreeWidgetItem()
item.foo = 123.123

Использование QVariant с str может сделать то, что я думаю

a = 0.12345678963582

item.setData(QtCore.Qt.UserRole,QtCore.QVariant(str(a)))

.....

val = float(item.data(QtCore.Qt.UserRole).toString()).strip())
Другие вопросы по тегам