IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Viadeo Twitter Facebook Share on Google+   
Logo Documentation Qt ·  Page d'accueil  ·  Toutes les classes  ·  Toutes les fonctions  ·  Vues d'ensemble  · 

QVariant

La classe QVariant agit comme une union des types de donn�es les plus courants de Qt. Plus d'informations...

  
 #include <QVariant>

H�ritage

H�rit� par QDBusVariant.

Description d�taill�e

La classe QVariant agit comme une union des types de donn�es les plus courants Qt.

Comme le C++ interdit d'utiliser des unions avec des types n'ayant pas de constructeurs ou destructeurs par d�faut, les classes les plus int�ressantes de Qt ne peuvent pas �tre utilis�es dans les unions. Sans la classe QVariant, cela aurait �t� un probl�me pour QObject::property(), pour le travail avec les bases de donn�es, etc.

Un objet QVariant contient une valeur unique d'un seul type type() � la fois (quelques types sont multivaleurs, par exemple une liste de cha�nes de caract�res). Vous pouvez trouver le type T que contient le QVariant, puis le convertir en un autre type avec la fonction convert(), r�cup�rer sa valeur gr�ce aux fonctions toT() (par exemple, toSize()) et v�rifier si le type peut �tre converti en un type particulier en utilisant la fonction canConvert().

Les m�thodes toT() (par exemple, toInt(), toString()) sont const. Si vous voulez r�cup�rer le type stock�, les fonctions retournent une copie de celui-ci. Si vous demandez un type pouvant �tre g�n�r� � partir du type stock�, toT() copie, convertit et laisse l'objet inchang�. Si vous demandez un type ne pouvant pas �tre g�n�r� � partir de celui stock�, le r�sultat d�pendra du type ; voir la documentation pour plus de d�tails.

Voici quelques exemples de code pour pr�senter l'utilisation de QVariant :

 QDataStream out(...);
 
 QVariant v(123);                // v contient un int
 
 int x = v.toInt();              // x = 123
 
 out << v;                       // �crit un indicateur de type et un int dans out
 
 v = QVariant("hello");          // v contient un QByteArray
 
 v = QVariant(tr("hello"));      // v contient une QString
 
 int y = v.toInt();              // y = 0 car v ne peut �tre converti en int
 
 QString s = v.toString();       // s = tr("hello")  (voir QObject::tr())
 
 out << v;                       // �crit un indicateur de type et une QString dans out
 
 ...
 
 QDataStream in(...);            // (ouvre le flux pr�c�dent)
 
 in >> v;                        // Lit un QVariant int
 
 int z = v.toInt();              // z = 123
 
 qDebug("Type is %s",            // Affiche "Type is int"
 
         v.typeName());
 
 v = v.toInt() + 100;            // v contient la valeur 223
 
 v = QVariant(QStringList());

Vous pouvez m�me stocker des valeurs QList<QVariant> et QMap<QString, QVariant> dans un QVariant, donc vous pouvez facilement construire des structures de donn�es complexes de types arbitraires. Ceci est tr�s puissant et flexible mais peut s'av�rer moins efficace en m�moire et en performance qu'un stockage classique de structures de donn�es sp�cifiques.

QVariant g�re aussi la notion de valeur nulle, qui permet de d�finir un type sans sp�cifier de valeur. Cependant, notez que les types QVariant ne peuvent �tre convertis que lorsqu'ils poss�dent une valeur d�finie.

 QVariant x, y(QString()), z(QString(""));
 
 x.convert(QVariant::Int);
 
 // x.isNull() == true
 
 // y.isNull() == true, z.isNull() == false

QVariant peut �tre �tendu pour supporter d'autres types que ceux mentionn�s dans l?�num�ration Type. Voir la documentation de QMetaType pour plus de d�tails.

Une note � propos des types pour les interfaces graphiques

Comme QVariant fait partie de la biblioth�que QtCore, il ne peut pas fournir des fonctions de conversions pour les types de donn�es d�finis dans QtGui, tels que QColor, QImage et QPixmap. Autrement dit, il n'y a pas de fonction toColor(). � la place, vous pouvez utiliser les fonctions templates QVariant::value() ou qVariantValeur(). Par exemple :

 QVariant variant;
 
 ...
 
 QColor color = variant.value<QColor>();

La conversion inverse (c'est-�-dire � partir de QColor en QVariant) est automatique pour tous les types de donn�es support�s par QVariant, y compris les types de donn�es li�s aux interfaces graphiques :

 QColor color = palette().background().color();
 
 QVariant variant = color;

Lors de l'utilisation de canConvert() et convert() cons�cutivement, il est possible que canConvert() retourne

true

mais que convert() retourne false. Ceci est d� � canConvert(), qui ne donne que la capacit� g�n�rale de QVariant pour convertir les types dans le cas o� les donn�es fournies sont ad�quates ; il reste possible de fournir des donn�es qui ne peuvent pas r�ellement �tre converties.

Par exemple, canConvert() retournera true lors de l'appel sur un QVariant contenant une cha�ne de caract�res car, en principe, QVariant est capable de convertir les cha�nes de caract�res de nombres en entier. Par contre, si la cha�ne de caract�res contient des caract�res non num�riques, il ne peut pas �tre converti en un entier et tous les essais pour le convertir �choueront. Donc, il est important que les deux fonctions retournent true pour que la conversion soit r�ussie.

Voir aussi QMetaType.

Type

enum QVariant::Type

Cette �num�ration d�finit les types de variables qu'un QVariant peut contenir.

Constante Valeur Description
QVariant::Invalid   aucun type
QVariant::BitArray 13 un QBitArray
QVariant::Bitmap 73 un QBitmap
QVariant::Bool 1 un bool�en
QVariant::Brush 66 un QBrush
QVariant::ByteArray 12 un QByteArray
QVariant::Char 7 un QChar
QVariant::Color 67 un QColor
QVariant::Cursor 74 un QCursor
QVariant::Date 14 un QDate
QVariant::DateTime 16 un QDateTime
QVariant::Double 6 un double
QVariant::EasingCurve 29 un QEasingCurve
QVariant::Font 64 un QFont
QVariant::Hash 28 un QVariantHash
QVariant::Icon 69 un QIcon
QVariant::Image 70 un QImage
QVariant::Int 2 un entier
QVariant::KeySequence 76 un QKeySequence
QVariant::Line 23 un QLine
QVariant::LineF 24 un QLineF
QVariant::List 9 un QVariantList
QVariant::Locale 18 un QLocale
QVariant::LongLong 4 un qlonglong
QVariant::Map 8 un QVariantMap
QVariant::Matrix 80 un QMatrix
QVariant::Transform 81 un QTransform
QVariant::Matrix4x4 82 un QMatrix4x4
QVariant::Palette 68 un QPalette
QVariant::Pen 77 un QPen
QVariant::Pixmap 65 un QPixmap
QVariant::Point 25 un QPoint
QVariant::PointArray Polygon un QPointArray
QVariant::PointF 26 un QPointF
QVariant::Polygon 71 un QPolygon
QVariant::Quaternion 86 un QQuaternion
QVariant::Rect 19 un QRect
QVariant::RectF 20 un QRectF
QVariant::RegExp 27 un QRegExp
QVariant::Region 72 un QRegion
QVariant::Size 21 un QSize
QVariant::SizeF 22 un QSizeF
QVariant::SizePolicy 75 un QSizePolicy
QVariant::String 10 un QString
QVariant::StringList 11 un QStringList
QVariant::TextFormat 79 un QTextFormat
QVariant::TextLength 78 un QTextLength
QVariant::Time 15 un QTime
QVariant::UInt 3 un uint
QVariant::ULongLong 5 un qulonglong
QVariant::Url 17 un QUrl
QVariant::Vector2D 83 un QVector2D
QVariant::Vector3D 84 un QVector3D
QVariant::Vector4D 85 un QVector4D
QVariant::UserType 127 valeur de base pour les types d�finis par l'utilisateur.

Fonctions membres

QVariant::QVariant ()

Construit un QVariant invalide.

QVariant::QVariant ( const QLocale & l )

Construit un nouveau QVariant avec la valeur l.

QVariant::QVariant ( const QRegExp & regExp )

Construit un nouveau QVariant avec la valeur regExp.

QVariant::QVariant ( const QEasingCurve & val )

Construit un nouveau QVariant avec la valeur val.

Cette fonction a �t� introduite dans Qt 4.7.

QVariant::QVariant ( Qt::GlobalColor color )

Construit un nouveau QVariant de type QVariant::Color et l'initialise avec color.

Ce constructeur permet d'utiliser la syntaxe QVariant(Qt::blue); pour cr�er un QVariant valide contenant un QColor.

Note. Ce constructeur l�vera une assertion si l'application n'est pas li�e � la biblioth�que d'interfaces graphiques de Qt.

Cette fonction a �t� introduite dans Qt 4.2.

QVariant::QVariant ( Type type )

Construit un QVariant nul de type type.

QVariant::QVariant ( int typeOrUserType, const void * copy )

Construit un QVariant de type typeOrUserType et l'initialise avec copy si copy est diff�rent de 0.

Notez que vous devez passer l'adresse de la variable que vous voulez stocker.

Habituellement, vous n'avez pas � utiliser ce constructeur, mais plut�t qVariantFromValeur(), afin de construire les QVariant � partir des types pointeurs repr�sent�s par QMetaType::VoidStar, QMetaType::QObjectStar et QMetaType::QWidgetStar.

Voir aussi qVariantFromValeur() et Type.

QVariant::QVariant ( const QVariant & p )

Construit une copie du QVariant, p, pass� comme argument au constructeur.

QVariant::QVariant ( QDataStream & s )

Lit le QVariant � partir du flux de donn�es, s.

QVariant::QVariant ( int val )

Construit un nouveau QVariant avec l'entier val.

QVariant::QVariant ( uint val )

Construit un nouveau QVariant avec l'entier non sign� val.

QVariant::QVariant ( qlonglong val )

Construit un nouveau QVariant avec l'entier long long val.

QVariant::QVariant ( qulonglong val )

Construit un nouveau QVariant avec l'entier non sign� long long val.

QVariant::QVariant ( bool val )

Construit un nouveau QVariant avec le bool�en val.

QVariant::QVariant ( double val )

Construit un nouveau QVariant avec le nombre en virgule flottante val.

QVariant::QVariant ( float val )

Construit un nouveau QVariant avec le nombre en virgule flottante val.

Cette fonction a �t� introduite dans Qt 4.6.

QVariant::QVariant ( const char * val )

Construit un nouveau QVariant avec la cha�ne de caract�res val. Le QVariant cr�e une copie compl�te de val, utilisant l'encodage d�fini par QTextCodec::setCodecForCStrings().

Notez que val est converti en un QString pour le stockage dans le QVariant et la fonction QVariant::type() retournera QMetaType::QString pour ce QVariant.

Vous pouvez d�sactiver cet op�rateur en d�finissant QT_NO_CAST_FROM_ASCII lors de la compilation de vos applications.

Voir aussi QTextCodec::setCodecForCStrings().

QVariant::QVariant ( const QByteArray & val )

Construit un nouveau QVariant avec le QByteArray val.

QVariant::QVariant ( const QBitArray & val )

Construit un nouveau QVariant avec le QBitArray val.

QVariant::QVariant ( const QString & val )

Construit un nouveau QVariant avec la cha�ne de caract�res val.

QVariant::QVariant ( const QLatin1String & val )

Construit un nouveau QVariant avec la cha�ne de caract�res val.

QVariant::QVariant ( const QStringList & val )

Construit un nouveau QVariant avec la liste de cha�ne de caract�res val.

QVariant::QVariant ( const QChar & c )

Construit un nouveau QVariant avec la valeur caract�re c.

QVariant::QVariant ( const QDate & val )

Construit un nouveau QVariant avec la valeur date val.

QVariant::QVariant ( const QTime & val )

Construit un nouveau QVariant avec le QTime val.

QVariant::QVariant ( const QDateTime & val )

Construit un nouveau QVariant avec le QDateTime val.

QVariant::QVariant ( const QList<QVariant> & val )

Construit un nouveau QVariant avec la liste val.

QVariant::QVariant ( const QMap<QString, QVariant> & val )

Construit un nouveau QVariant avec la QMap de QVariant val.

QVariant::QVariant ( const QHash<QString, QVariant> & val )

Construit un nouveau QVariant avec la table de hachage de QVariant val.

QVariant::QVariant ( const QSize & val )

Construit un nouveau QVariant avec la valeur taille val.

QVariant::QVariant ( const QSizeF & val )

Construit un nouveau QVariant avec la valeur taille val.

QVariant::QVariant ( const QPoint & val )

Construit un nouveau QVariant avec le point val.

QVariant::QVariant ( const QPointF & val )

Construit un nouveau QVariant avec le point val.

QVariant::QVariant ( const QLine & val )

Construit un nouveau QVariant avec la ligne val.

QVariant::QVariant ( const QLineF & val )

Construit un nouveau QVariant avec la ligne val.

QVariant::QVariant ( const QRect & val )

Construit un nouveau QVariant avec le rectangle val.

QVariant::QVariant ( const QRectF & val )

Construit un nouveau QVariant avec le rectangle val.

QVariant::QVariant ( const QUrl & val )

Construit un nouveau QVariant avec l'URL val.

QVariant::~QVariant ()

D�truit le QVariant et l'objet contenu.

Notez que les classes d�riv�es qui r�impl�mentent clear() doivent r�impl�menter le destructeur pour appeler clear(). Ce destructeur appelle clear() mais comme c'est le destructeur de base, QVariant::clear() est appel� � la place du clear() de la classe d�riv�e.

bool QVariant::canConvert ( Type t ) const

Retourne true si la type du QVariant peut �tre converti en type t. Cette conversion est effectu�e automatiquement lors de l'appel des m�thodes toInt(), toBool(), etc.

Les conversions suivantes sont effectu�es automatiquement :

Type Automatiquement converti en
Bool Char, Double, Int, LongLong, String, UInt, ULongLong
ByteArray Double, Int, LongLong, String, UInt, ULongLong
Char Bool, Int, UInt, LongLong, ULongLong
Color String
Date DateTime, String
DateTime Date, String, Time
Double Bool, Int, LongLong, String, UInt, ULongLong
Font String
Int Bool, Char, Double, LongLong, String, UInt, ULongLong
KeySequence Int, String
List StringList (if the list's items can be converted to strings)
LongLong Bool, ByteArray, Char, Double, Int, String, UInt, ULongLong
Point PointF
Rect RectF
String Bool, ByteArray, Char, Color, Date, DateTime, Double, Font, Int, KeySequence, LongLong, StringList, Time, UInt, ULongLong
StringList List, String (si la liste contient exactement un �l�ment)
Time String
UInt Bool, Char, Double, Int, LongLong, String, ULongLong
ULongLong Bool, Char, Double, Int, LongLong, String, UInt

Voir aussi convert().

bool QVariant::canConvert () const

Retourne true si le QVariant peut �tre converti dans le type template T, sinon retourne false.

Exemple:

 QVariant v = 42;
 
 
 
 v.canConvert<int>();              // retourne vrai
 
 v.canConvert<QString>();          // retourne vrai
 
 
 
 MyCustomStruct s;
 
 v.setValeur(s);
 
 
 
 v.canConvert<int>();              // retourne faux
 
 v.canConvert<MyCustomStruct>();   // retourne vrai

Attention : cette fonction n'est pas disponible avec MSVC 6. Utilisez la fonction qVariantCanConvert() � la place si vous avez besoin de supporter cette version du compilateur.

Voir aussi convert().

void QVariant::clear ()

Convertit le QVariant en type Invalid et lib�re les ressources utilis�es.

bool QVariant::convert ( Type t )

Convertit le QVariant dans le type requis, t. Si la conversion ne peut �tre effectu�e, le QVariant est invalid�. Retourne true si le type courant de QVariant a �t� converti avec succ�s; sinon retourne false.

Attention : pour des raisons historiques, la conversion d'un QVariant nul r�sulte en une valeur nulle du type d�sir� (c'est-�-dire, par exemple, une cha�ne de caract�res vide pour QString) et un retour de la valeur false.

Voir aussi canConvert() et clear().

QVariant QVariant::fromValeur ( const T & value ) [static]

Retourne un QVariant contenant une copie de value. Se comporte exactement comme setValeur().

Exemple:

 MyCustomStruct s;
 
 return QVariant::fromValeur(s);

Note : si vous travaillez avec des types personnalis�s, vous devriez utiliser la macro Q_DECLARE_METATYPE() pour enregistrer votre type.

Attention : cette fonction n'est pas disponible avec MSVC 6. Utilisez la fonction qVariantFromValeur() � la place si vous avez besoin de supporter cette version du compilateur.

Voir aussi setValeur() et value().

bool QVariant::isNull () const

Retourne true si le QVariant est nul, sinon false.

bool QVariant::isValid () const

Retourne true si le type contenu dans ce QVariant n'est pas QVariant::Invalid; sinon retourne false.

Type QVariant::nameToType ( const char * name ) [static]

Convertit la cha�ne de caract�res name repr�sentant un type en sa repr�sentation dans l'�num�ration.

Si la cha�ne de caract�res ne peut �tre convertie en une valeur de l'�num�ration, le QVariant est d�fini � Invalid.

void QVariant::setValeur ( const T & value )

Stocke une copie de value. Si le type T n'est pas un type g�r� par QVariant, QMetaType est utilis� pour stocker la valeur. Une erreur de compilation se produira si QMetaType ne g�re par le type.

Exemple:

 QVariant v;
 
 
 
 v.setValeur(5);
 
 int i = v.toInt();         // i vaut 5
 
 QString s = v.toString()   // s vaut "5"
 
 
 
 MyCustomStruct c;
 
 v.setValeur(c);
 
 
 
 ...
 
 
 
 MyCustomStruct c2 = v.value<MyCustomStruct>();

Attention : cette fonction n'est pas disponible pour MSVC 6. Utilisez la fonction qVariantSetValeur() � la place si vous avez besoin de supporter ce compilateur.

Voir aussi value(), fromValeur() et canConvert().

QBitArray QVariant::toBitArray () const

Retourne le QVariant sous forme d'un QBitArray si le type() du QVariant est BitArray ; sinon retourne un tableau de bits vide.

Voir aussi canConvert() et convert().

bool QVariant::toBool () const

Retourne le QVarient sous forme d'un bool�en si le type() est Bool.

Retourne true si le type() est Bool, Char, Double, Int, LongLong, UInt ou ULongLong et la valeur est diff�rente de z�ro ou si le type est String ou ByteArray et qu'il n'est pas vide, «   » ou « false » ; sinon retourne false.

Voir aussi canConvert() et convert().

QByteArray QVariant::toByteArray () const

Retourne le QVariant sous forme d'un QByteArray si le QVarient est de type() ByteArray ou String (convertie avec QString::fromAscii()) ; sinon retourne un tableau d'octets vide.

Voir aussi canConvert() et convert().

QChar QVariant::toChar () const

Retourne le QVariant sous forme d'un QChar si le type() est Char, Int ou UInt ; sinon retourne un QChar invalide.

Voir aussi canConvert() et convert().

QDate QVariant::toDate () const

Retourne le QVariant tel un QDate si le type() est Date, DateTime ou String ; sinon retourne une date invalide.

Si le type() est String, une date invalide sera retourn�e si la chaine de caract�res ne peut pas �tre analys�e dans le format Qt::ISODate.

Voir aussi canConvert() et convert().

QDateTime QVariant::toDateTime () const

Retourne le QVariant sous forme d'un QDateTime si le type() est DateTime, Date ou String ; sinon, retourne une QDateTime invalide.

Si le type() est String, une QDateTime invalide sera retourn�e si la cha�ne de caract�res n'est pas dans le format Qt::ISODate.

Voir aussi canConvert() et convert().

double QVariant::toDouble ( bool * ok = 0 ) const

Retourne le QVariant sous forme d'un double si le type() est Double, QMetaType::Float, Bool, ByteArray, Int, LongLong, String, UInt ou ULongLong ; sinon retourne 0.0.

Si ok n'est pas nul, *ok est mis � true si la valeur a pu �tre convertie ; sinon, *ok est mis � false.

Voir aussi canConvert() et convert().

QEasingCurve QVariant::toEasingCurve () const

Retourne le QVariant sous forme d'un QEasingCurve si le type() est EasingCurve ; sinon retourne une QEasingCurve par d�faut.

Cette fonction a �t� introduite dans Qt 4.7.

Voir aussi canConvert() et convert().

float QVariant::toFloat ( bool * ok = 0 ) const

Retourne le QVariant sous forme d'un float si le type() est Double, QMetaType::Float, Bool, ByteArray, Int, LongLong, String, UInt ou ULongLong; sinon retourne 0.0.

Si ok n'est pas nul, *ok est mis � true si la valeur a pu �tre convertie ; sinon, *ok est mis � false.

Cette fonction a �t� introduite dans Qt 4.6.

Voir aussi canConvert() et convert().

QHash<QString, QVariant> QVariant::toHash () const

Retourne le QVariant sous forme d'un QHash<QString, QVariant> si le type() est Hash ; sinon retourne une table de hachage vide.

Voir aussi canConvert() et convert().

int QVariant::toInt ( bool * ok = 0 ) const

Retourne le QVariant sous forme d'un int si le type() est Int, Bool, ByteArray, Char, Double, LongLong, String, UInt ou ULongLong ; sinon retourne 0.

Si ok est non nul, *ok est mis � true si la valeur a pu �tre convertie en int ; sinon, *ok est mis � false.

Attention : si la valeur est convertible en un LongLong mais qu'elle est trop grande pour �tre repr�sent�e dans un int, le d�passement arithm�tique ne sera pas refl�t� dans ok. Un contournement simple est d'utiliser la fonction QString::toInt(). La correction de ce bogue a �t� report�e � Qt 5 afin d'�viter de casser le code existant.

Voir aussi canConvert() et convert().

QLine QVariant::toLine () const

Retourne le QVariant sous forme d'un QLine si le type() est Line ; sinon retourne un QLine invalide.

Voir aussi canConvert() et convert().

QLineF QVariant::toLineF () const

Retourne un QVariant sous forme d'un QLineF si le type() est LineF ; sinon retourne un QLineF invalide.

Voir aussi canConvert() et convert().

QList<QVariant> QVariant::toList () const

Retourne le QVariant sous forme d'un QVariantList si le type() est List ou StringList ; sinon retourne une liste vide.

Voir aussi canConvert() et convert().

QLocale QVariant::toLocale () const

Retourne le QVariant sous forme d'un QLocale si le type() est Locale ; sinon retourne un QLocale invalide.

Voir aussi canConvert() et convert().

qlonglong QVariant::toLongLong ( bool * ok = 0 ) const

Retourne le QVariant sous forme d'un long long int si le type() est LongLong, Bool, ByteArray, Char, Double, Int, String, UInt ou ULongLong ; sinon retourne 0.

Si ok est non nul: *ok est mis � true si la valeur a pu �tre convertie en int; sinon *ok est mis � false.

Voir aussi canConvert() et convert().

QMap<QString, QVariant> QVariant::toMap () const

Retourne le QVariant sous forme d'un QMap<QString, QVariant> si le type() est Map ; sinon retourne une table de hachage vide.

Voir aussi canConvert() et convert().

QPoint QVariant::toPoint () const

Retourne le QVariant sous forme d'un QPoint si le type() est Point ou PointF ; sinon retourne un QPoint nul.

Voir aussi canConvert() et convert().

QPointF QVariant::toPointF () const

Retourne le QVariant sous forme d'un QPointF si le type() est Point ou PointF ; sinon retourne un QPointF nul.

Voir aussi canConvert() et convert().

qreal QVariant::toReal ( bool * ok = 0 ) const

Retourne le QVariant sous forme d'un qreal si le type() est Double, QMetaType::Float, Bool, ByteArray, Int, LongLong, String, UInt ou ULongLong; sinon retourne 0.0.

Si ok n'est pas nul, *ok est mis � true si la valeur a pu �tre convertie ; sinon, *ok est mis � false.

Cette fonction a �t� introduite dans Qt 4.6.

Voir aussi canConvert() et convert().

QRect QVariant::toRect () const

Retourne le QVariant sous forme d'un QRect si le type() est Rect ; sinon retourne un QRect invalide.

Voir aussi canConvert() et convert().

QRectF QVariant::toRectF () const

Retourne le QVariant sous forme d'un QRectF si le type() est Rect ou RectF ; sinon retourne un QRectF invalide.

Voir aussi canConvert() et convert().

QRegExp QVariant::toRegExp () const

Retourne le QVariant sous forme d'un QRegExp si le type() est RegExp ; sinon retourne un QRegExp vide.

Cette fonction a �t� introduite dans Qt 4.1.

Voir aussi canConvert() et convert().

QSize QVariant::toSize () const

Retourne un QVariant sous forme d'un QSize si le type() Size ; sinon retourne un QSize invalide.

Voir aussi canConvert() et convert().

QSizeF QVariant::toSizeF () const

Retourne le QVariant sous forme d'un QSizeF si le type() est SizeF ; sinon retourne un QSizeF invalide.

Voir aussi canConvert() et convert().

QString QVariant::toString () const

Retourne le QVariant sous forme d'un QString si le type() est String, Bool, ByteArray, Char, Date, DateTime, Double, Int, LongLong, StringList, Time, UInt ou ULongLong ; sinon retourne une cha�ne de caract�res vide.

Voir aussi canConvert() et convert().

QStringList QVariant::toStringList () const

Retourne le QVariant sous forme d'un QStringList si le type() est StringList, String ou List d'un type qui peut �tre converti en QString ; sinon, retourne une liste vide.

Voir aussi canConvert() et convert().

QTime QVariant::toTime () const

Retourne le QVariant sous forme d'un QTime si le type() est Time, DateTime ou String ; sinon retourne un QTime invalide.

Si le type() est String, un QTime invalide sera retourn� si la chaine de caract�res ne peut pas �tre analys�e dans le format de temps Qt::ISODate.

Voir aussi canConvert() et convert().

uint QVariant::toUInt ( bool * ok = 0 ) const

Retourne le QVariant sous forme d'un unsigned int si le type() est UInt, Bool, ByteArray, Char, Double, Int, LongLong, String ou ULongLong ; sinon retourne 0.

Si ok est non nul, *ok est mis � true si la valeur a pu �tre convertie en un unsigned int ; sinon, *ok est mis � false.

Attention : si la valeur est convertible en un ULongLong mais trop grande pour �tre repr�sent�e dans un unsigned int, le d�passement arithm�tique ne sera pas refl�t� dans ok. Un contournement simple est d?utiliser la fonction QString::toUInt(). La correction de ce bogue a �t� repouss�e � Qt 5 afin de ne pas casser le code existant.

Voir aussi canConvert() et convert().

qulonglong QVariant::toULongLong ( bool * ok = 0 ) const

Retourne le QVariant sous forme d'un unsigned long long int si le type() est ULongLong, Bool, ByteArray, Char, Double, Int, LongLong, String ou UInt ; sinon retourne 0.

Si ok est non nul, *ok est mis � true si la valeur n'a pas pu �tre convertie en un int ; sinon, *ok est mis � false.

Voir aussi canConvert() et convert().

QUrl QVariant::toUrl () const

Retourne le QVariant sous forme d'un QUrl si le type() est Url ; sinon retourne un QUrl invalide.

Voir aussi canConvert() et convert().

Type QVariant::type () const

Retourne le type de la valeur contenue dans le QVariant. Bien que cette fonction retourne un QVariant::Type, la valeur de retour devrait �tre interpr�t�e comme un QMetaType::Type. En particulier, QVariant::UserType est retourn� seulement si la valeur est �gale ou sup�rieure � QMetaType::User.

Notez que les valeurs de retour comprises entre QVariant::Char et QVariant::RegExp ainsi qu'entre QVariant::Font et QVariant::Transform correspondent aux valeurs comprises entre QMetaType::QChar et QMetaType::QRegExp ainsi qu'entre QMetaType::QFont et QMetaType::QQuaternion.

Faites particuli�rement attention lorsque vous travaillez avec des QVariant de char et QChar. Notez qu'il n'y a pas de constructeur de QVariant sp�cifique pour char mais il y en a un pour QChar. Pour les QVariant de type QChar, la fonction retourne QVariant::Char, qui est identique � QMetaType::QChar mais, pour les QVariant de type char, cette fonction retourne QMetaType::Char, qui est diff�rent de QVariant::Char.

Notez aussi que les types void*, long, short, unsigned long, unsigned short, unsigned char, float, QObject* et QWidget* sont repr�sent�s dans QMetaType::Type mais pas dans QVariant::Type et qu'ils peuvent �tre renvoy�s par cette fonction. Cependant, ils sont consid�r�s comme des types d�finis par l'utilisateur lorsqu'ils sont test�s avec QVariant::Type.

Pour tester si une instance de QVariant contient un type de donn�e compatible avec le type qui vous int�resse, utilisez canConvert().

const char * QVariant::typeName () const

Retourne le nom du type contenu dans le QVariant. La cha�ne de caract�res d�crit le type de donn�e C++ utilis� pour stocker la donn�e : par exemple,  »QFont »,  »QString » ou  »QVariantList ». Un QVariant invalide retourne 0.

const char * QVariant::typeToName ( Type typ ) [static]

Convertit la repr�sentation dans l'�num�ration du type contenu, typ, en sa repr�sentation en cha�ne de caract�res.

Retourne un pointeur nul si le type est QVariant::Invalid ou s'il n'existe pas.

int QVariant::userType () const

Retourne le type de la valeur contenue dans le QVariant. Pour les types non d�finis par l'utilisateur, cette fonction est identique � type().

Voir aussi type().

T QVariant::value () const

Retourne la valeur contenue convertie dans le type template T. Appelez la fonction canConvert() pour savoir si le type peut �tre converti. Si la valeur ne peut �tre convertie, une valeur construite par d�faut sera retourn�e.

Si le type T n'est pas g�r� par QVariant, cette fonction se comporte exactement comme toString(), toInt(), etc.

Exemple:

 QVariant v;
 
 
 
 MyCustomStruct c;
 
 if (v.canConvert<MyCustomStruct>())
 
     c = v.value<MyCustomStruct>();
 
 
 
 v = 7;
 
 int i = v.value<int>();                        // identique � v.toInt()
 
 QString s = v.value<QString>();                // identique � v.toString(), s vaut "7"
 
 MyCustomStruct c2 = v.value<MyCustomStruct>(); // la conversion a �chou�, c2 est vide

Attention : cette fonction n'est pas disponible avec MSVC 6. Utilisez la fonction qVariantValue() ou qvariant_cast() � la place si vous devez supporter ce compilateur.

Voir aussi setValeur(), fromValeur() et canConvert().

bool QVariant::operator!= ( const QVariant & v ) const

Compare ce QVariant avec v et retourne true s'ils sont diff�rents ; sinon retourne false.

Attention : cette fonction ne g�re pas les types personnalis�s enregistr�s avec qRegisterMetaType().

QVariant & QVariant::operator= ( const QVariant & variant )

Affecte la valeur variant au QVariant.

bool QVariant::operator== ( const QVariant & v ) const

Compare ce QVariant avec v et retourne true s'ils sont �gaux ; sinon retourne false.

Dans le cas de types personnalis�s, leurs op�rateurs d'�galit� ne sont pas appel�s. � la place, on compare les adresses des valeurs.

En relation mais non membres de la classe

typedef QVariantHash

Synonyme de QHash<QString, QVariant>.

Ce typedef a �t� introduit dans Qt 4.5.

typedef QVariantList

Synonyme de QList<QVariant>.

typedef QVariantMap

Synonyme pour QMap<QString, QVariant>.

bool qVariantCanConvert ( const QVariant & value )

Retourne true si la valeur donn�e value peut �tre convertie dans le type du template ; sinon retourne false.

Cette fonction est �quivalente � QVariant::canConvert(value). Elle est fournie afin de contourner les limitations de MSVC 6, qui ne supporte pas les fonctions templates membres.

Voir aussi QVariant::canConvert().

QVariant qVariantFromValue ( const T & value )

Retourne un QVariant contenant une copie de la valeur donn�e value de type T.

Cette fonction est �quivalente � QVariant::fromValue(value). Elle est fournie afin de contourner les limitations de MSVC 6, qui ne supporte pas les fonctions templates membres.

Par exemple, un pointeur QObject peut �tre stock� dans un QVariant avec le code suivant :

 QObject *object = getObjectFromSomewhere();
 
 QVariant data = qVariantFromValue(object);

Voir aussi QVariant::fromValue().

void qVariantSetValue ( QVariant & variant, const T & value )

D�finit le contenu du QVariant donn� variant avec la copie de value du type T.

Cette fonction est �quivalente � QVariant::setValue(value). Elle est fournie afin de contourner les limitations de MSVC 6, qui ne supporte pas les fonctions templates membres.

Voir aussi QVariant::setValue().

T qVariantValue ( const QVariant & value )

Retourne la valeur donn�e value convertie en type T.

Cette fonction est �quivalente � QVariant::value<T>(value). Elle est fournie afin de contourner les limitations de MSVC 6, qui ne supporte pas les fonctions templates membres.

Voir aussi QVariant::value() et qvariant_cast().

T qvariant_cast ( const QVariant & value )

Retourne la valeur donn�e value convertie en type T.

Cette fonction est �quivalente � qVariantValeur().

Voir aussi qVariantValeur() et QVariant::value().

bool operator!= ( const QVariant & v1, const QVariant & v2 )

Retourne false si v1 et v2 sont �gaux ; sinon retourne true.

Attention : cette fonction ne supporte pas les types personnalis�s enregistr�s avec qRegisterMetaType().

bool operator== ( const QVariant & v1, const QVariant & v2 )

Retourne true si v1 et v2 sont �gaux ; sinon, retourne false.

Attention : cette fonction ne supporte pas les types personnalis�s enregistr�s avec qRegisterMetaType().

Remerciements

Merci � Alexandre Laurent pour la traduction, ainsi qu'� Ilya Diallo et Claude Leloup pour la relecture !

Cette page est une traduction d'une page de la documentation de Qt, �crite par Nokia Corporation and/or its subsidiary(-ies). Les �ventuels probl�mes r�sultant d'une mauvaise traduction ne sont pas imputables � Nokia. Qt 4.7
Copyright © 2025 Developpez LLC. Tous droits r�serv�s Developpez LLC. Aucune reproduction, m�me partielle, ne peut �tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon, vous encourez selon la loi jusqu'� 3 ans de prison et jusqu'� 300 000 E de dommages et int�r�ts. Cette page est d�pos�e � la SACD.
Vous avez d�nich� une erreur ? Un bug ? Une redirection cass�e ? Ou tout autre probl�me, quel qu'il soit ? Ou bien vous d�sirez participer � ce projet de traduction ? N'h�sitez pas � nous contacter ou par MP !