Как умножить два значения QQariant PyQt и вернуть ответ как double - PullRequest
0 голосов
/ 03 июня 2011

как умножить два значения QQariant PyQt и вернуть их как Double.я пытаюсь преобразовать два значения Pyqt Qvariant в удвоение, а затем умножить их, я всегда получаю 0.0

float1, ok = QVariant.toDouble (val2)`
float2, ok = QVariant.toDouble (val1)`
val3 = float2*float1 
return val3

`val3 всегда заканчиваю 0.0 вопрос, как мне числовые значения

спасибо

1 Ответ

1 голос
/ 04 июня 2011

Без кода трудно сказать, но QVariant docs состояние

(float, bool ok) QVariant.toDouble (self)

Возвращает вариант как число с плавающей запятой, если вариант имеет тип () Double, QMetaType.Float, Bool, ByteArray, Int, LongLong, String, UInt или ULongLong; в противном случае возвращает 0.0.

Вы уверены, что ваши QVariants относятся к одному из этих типов?

EDIT

Из вашего кода я вижу, что вы звоните QVariant.toDouble(). Попробуйте вызвать .toDouble() на ваших экземплярах QVariant. Например, этот код работает для меня.

>>> val1=QtCore.QVariant(12.0)
>>> val2=QtCore.QVariant(11.0)
>>> float1, ok = val1.toDouble()
>>> float2, ok = val2.toDouble()
>>> val3=float2*float1
>>> print val3
132.0
...