Столкнулся с такой проблемой. Есть код, возвращающий QVariant, на самом деле там может быть либо строка, либо целое, либо десятичная дробь. Каждый из этих трех типов необходимо обрабатывать по разному. Вопрос в том, можно ли как-то определить является ли строка строкой, целым числом или числом с плавающей запятой?
Метод canConvert() возвращает True для любого из трех типов, что логично. Пока додумался только до одного: пытаться преобразовать переменную в число (float или int, не важно) и ловить исключение. Если преобразовалось, то это число, если исключение — строка. Есть ли метод лучше?