ayuda con tipos QT

Iniciado por febef, 19 Noviembre 2012, 05:25 AM

0 Miembros y 1 Visitante están viendo este tema.

febef



Hola, no logro encontrar como convertir un qreal en c++ usando la libreria QT a un int...

estaria agradecidicimo si me pudieran ayudar!! :)

avesudra

Hola fex , en Qt la mayoría de tipos generales son typedef's de otros , es decir una sustitución por otro nombre , si te fijas en la documentación de los tipos de Qt aquí:
http://qt-project.org/doc/qt-4.8/qtglobal.html
Podrás ver que un qreal es un typedef del tipo double en todas las plataformas excepto para aquellas que usan CPUs con arquitecturas ARM. En las plataformas basadas en ARM, un qreal es un typedef de float por razones de rendimiento.
Cito el texto en esa página:

typedef qreal

Typedef for double on all platforms except for those using CPUs with ARM architectures. On ARM-based platforms, qreal is a typedef for float for performance reasons.

Te pongo esto porque no te explicaste bien y creo que realmente lo que quieres es convertir un qreal a un qint para quitar decimales.Para eso creo que puedes poner esto:
Código (cpp) [Seleccionar]

qint32 numeroEnEntero= 0;
qreal numeroEnReal = 4.54;
numeroEnEntero = (qint32) numeroEnReal;

Con eso debería funcionarte , si nó al ser un double se le puede hacer un cast a int porque básicamente es lo mismo:
Código (cpp) [Seleccionar]

qint32 numeroEnEntero= 0;
qreal numeroEnReal = 4.54;
numeroEnEntero = (int) numeroEnReal;

Regístrate en

febef


BlackZeroX

#3
usa static_cast

Código (cpp) [Seleccionar]


qint32 numeroEnEntero(0);
qreal numeroEnReal(4.54);

numeroEnEntero = static_cast<qint32>(numeroEnReal);



también puedes usar la clase QVariant...

http://doc.qt.digia.com/qt/qvariant.html#convert
http://doc.qt.digia.com/qt/qvariant.html#Type-enum


Dulces Lunas!¡.
The Dark Shadow is my passion.