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())