Вы можете сохранить типы, поддерживаемые QVariant, и, если это не поддерживается, Qt указывает правила для новых типов, которые должны поддерживаться, в случае двойных значений это поддерживается, поэтому для сохранения используйте метод setData, чтобы указать и использовать неиспользуемая роль по умолчанию, такая как Qt :: UserRole.
float data = 5.0;
int column = 0
item->setData(column, Qt::UserRole, data);
И для получения данных вы должны преобразовать QVariant, полученный методом data () QTreeWidgetItem:
int column = 0
QVariant v = item->data(column, Qt::UserRole);
float value = v.toFloat(); // or v.value<float>();