Overview | Package | Class | Tree | Deprecated | Index | Help
Qt Jambi Home |
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.trolltech.qt
Class QVariant

    java.lang.Object
      com.trolltech.qt.QSignalEmitter
          com.trolltech.qt.QtJambiObject
              com.trolltech.qt.QVariant

All Implemented Interfaces:
  QtJambiInterface

    public class QVariant

extends QtJambiObject

The QVariant class acts like a union for the most common Qt data types.

Because C++ forbids unions from including types that have non-default constructors or destructors, most interesting Qt classes cannot be used in unions. Without QVariant, this would be a problem for QObject::property() and for database work, etc.

A QVariant object holds a single value of a single type() at a time. (Some type()s are multi-valued, for example a string list.) You can find out what type, T, the variant holds, convert it to a different type using convert(), get its value using one of the toT() functions (e.g., toSize()) and check whether the type can be converted to a particular type using canConvert().

The methods named toT() (e.g., toInt(), toString()) are const. If you ask for the stored type, they return a copy of the stored object. If you ask for a type that can be generated from the stored type, toT() copies and converts and leaves the object itself unchanged. If you ask for a type that cannot be generated from the stored type, the result depends on the type; see the function documentation for details.

Here is some example code to demonstrate the use of QVariant:

``

        QDataStream out(...);
        QVariant v(123);                // The variant now contains an int
        int x = v.toInt();              // x = 123
        out << v;                       // Writes a type tag and an int to out
        v = QVariant("hello");          // The variant now contains a QByteArray
        v = QVariant(tr("hello"));      // The variant now contains a QString
        int y = v.toInt();              // y = 0 since v cannot be converted to an int
        QString s = v.toString();       // s = tr("hello")  (see QObject::tr())
        out <<v;                  // Writes a type tag and a QString to out
        ...
        QDataStream in(...);            // (opening the previously written stream)
        in >> v;                  // Reads an Int variant
        int z = v.toInt();              // z = 123
        qDebug("Type is %s",            // prints "Type is int"
                v.typeName());
        v = v.toInt() + 100;            // The variant now hold the value 223
        v = QVariant(QStringList());

You can even store QList and QMap values in a variant, so you can easily construct arbitrarily complex data structures of arbitrary types. This is very powerful and versatile, but may prove less memory and speed efficient than storing specific types in standard data structures.

QVariant also supports the notion of null values, where you have a defined type with no value set.

``

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

QVariant can be extended to support other types than those mentioned in the \l Type enum. See the \l QMetaType documentation for details.

## A Note on GUI Types

Because QVariant is part of the QtCore library, it cannot provide conversion functions to data types defined in QtGui, such as QColor, QImage, and QPixmap. In other words, there is no \c toColor() function. Instead, you can use the QVariant::value() or the qVariantValue() template function. For example:

``

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

The inverse conversion (e.g., from QColor to QVariant) is automatic for all data types supported by QVariant, including GUI-related types:

``

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

Because of Java's introspection, you should only use the QVariant class when dealing with Qt Jambi classes that requires them.

Nested Class Summary

Nested classes/interfaces inherited from class com.trolltech.qt.QSignalEmitter
`QSignalEmitter.AbstractSignal, QSignalEmitter.Signal0, QSignalEmitter.Signal1<A>, QSignalEmitter.Signal2<A,B>, QSignalEmitter.Signal3<A,B,C>, QSignalEmitter.Signal4<A,B,C,D>, QSignalEmitter.Signal5<A,B,C,D,E>, QSignalEmitter.Signal6<A,B,C,D,E,F>, QSignalEmitter.Signal7<A,B,C,D,E,F,G>, QSignalEmitter.Signal8<A,B,C,D,E,F,G,H>, QSignalEmitter.Signal9<A,B,C,D,E,F,G,H,I>`

Field Summary
`static int` | `BitArray`
`static int` | `Bitmap`
`static int` | `Boolean`
`static int` | `Brush`
`static int` | `ByteArray`
`static int` | `Char`
`static int` | `Color`
`static int` | `Cursor`
`static int` | `Date`
`static int` | `DateTime`
`static int` | `Double`
`static int` | `Font`
`static int` | `Icon`
`static int` | `Image`
`static int` | `Int`
`static int` | `Invalid`
`static int` | `KeySequence`
`static int` | `Line`
`static int` | `LineF`
`static int` | `Locale`
`static int` | `Long`
`static int` | `Palette`
`static int` | `Pen`
`static int` | `Pixmap`
`static int` | `Point`
`static int` | `PointF`
`static int` | `Polygon`
`static int` | `Rect`
`static int` | `RectF`
`static int` | `RegExp`
`static int` | `Region`
`static int` | `Size`
`static int` | `SizeF`
`static int` | `SizePolicy`
`static int` | `String`
`static int` | `StringList`
`static int` | `TextFormat`
`static int` | `TextLength`
`static int` | `Time`
`static int` | `UserType`

Method Summary
`static boolean` | `canConvertToBitArray(java.lang.Object obj)` Returns true if `obj` can be converted to a bit array.
`static boolean` | `canConvertToBoolean(java.lang.Object obj)` Returns true if `obj` can be converted to boolean.
`static boolean` | `canConvertToByteArray(java.lang.Object obj)` Returns true if `obj` can be converted to a byte array.
`static boolean` | `canConvertToChar(java.lang.Object obj)` Returns true if `obj` can be converted to a char.
`static boolean` | `canConvertToDate(java.lang.Object obj)` Returns true if `obj` can be converted to a QDate.
`static boolean` | `canConvertToDateTime(java.lang.Object obj)` Returns true if `obj` can be converted to a QDateTime.
`static boolean` | `canConvertToDouble(java.lang.Object obj)` Returns true if `obj` can be converted to a double; otherwise, returns false.
`static boolean` | `canConvertToInt(java.lang.Object obj)` Returns true if `obj` can be converted to an int.
`static boolean` | `canConvertToLine(java.lang.Object obj)` Returns true if `obj` can be converted to a QLine.
`static boolean` | `canConvertToLineF(java.lang.Object obj)` Returns true if `obj` can be converted to a QLineF.
`static boolean` | `canConvertToList(java.lang.Object obj)` Returns true if `obj` can be converted to a list of type java.util.List.
`static boolean` | `canConvertToLocale(java.lang.Object obj)` Returns true if `obj` can be converted to a QLocale.
`static boolean` | `canConvertToLong(java.lang.Object obj)` Returns true if `obj` can be converted to a long.
`static boolean` | `canConvertToMap(java.lang.Object obj)` Returns true if `obj` can be converted to a map (java.util.Map).
`static boolean` | `canConvertToPoint(java.lang.Object obj)` Returns true if `obj` can be converted to a QPoint.
`static boolean` | `canConvertToPointF(java.lang.Object obj)` Returns true if `obj` can be converted to a QPointF.
`static boolean` | `canConvertToRect(java.lang.Object obj)` Returns true if `obj` can be converted to a QRect.
`static boolean` | `canConvertToRectF(java.lang.Object obj)` Returns true if `obj` can be converted to a QRectF.
`static boolean` | `canConvertToRegExp(java.lang.Object obj)` Returns true if `obj` can be converted to a QRegExp.
`static boolean` | `canConvertToSize(java.lang.Object obj)` Returns true if `obj` can be converted to a QSize.
`static boolean` | `canConvertToSizeF(java.lang.Object obj)` Returns true if `obj` can be converted to a QSizeF.
`static boolean` | `canConvertToString(java.lang.Object obj)` Returns true if `obj` can be converted to a string; otherwise, returns false.
`static boolean` | `canConvertToTime(java.lang.Object obj)` Returns true if `obj` can be converted to a QTime.
`static QBitArray` | `toBitArray(java.lang.Object obj)` Returns `obj` as a QBitArray.
`static boolean` | `toBoolean(java.lang.Object obj)` Returns the boolean value of `obj`.
`static QByteArray` | `toByteArray(java.lang.Object obj)` Returns `obj` converted to a QByteArray.
`static char` | `toChar(java.lang.Object obj)` Returns the char value of `obj`
`static QDate` | `toDate(java.lang.Object obj)` Returns `obj` converted to a QDate.
`static QDateTime` | `toDateTime(java.lang.Object obj)` Returns `obj` converted to a QDateTime.
`static double` | `toDouble(java.lang.Object obj)` Returns the double value of `obj` `obj`
`static double` | `toDouble(java.lang.Object obj, java.lang.Boolean[] ok)` Returns the double value of `obj`.
`static int` | `toInt(java.lang.Object obj)` Returns the int value of `obj`.
`static int` | `toInt(java.lang.Object obj, java.lang.Boolean[] ok)` Returns the int value of `obj`.
`static QLine` | `toLine(java.lang.Object obj)` Returns `obj` as a QLine.
`static QLineF` | `toLineF(java.lang.Object obj)` Returns `obj` converted to a QLineF.
`static java.util.List<java.lang.Object>` | `toList(java.lang.Object obj)` Returns `obj` as a list.
`static QLocale` | `toLocale(java.lang.Object obj)` Returns `obj` converted to a QLocale.
`static long` | `toLong(java.lang.Object obj)` Returns the long value of `obj`
`static long` | `toLong(java.lang.Object obj, java.lang.Boolean[] ok)` Returns the long value of `obj`.
`static java.util.Map<java.lang.String,java.lang.Object>` | `toMap(java.lang.Object obj)` Returns `obj` as a map.
`static QPoint` | `toPoint(java.lang.Object obj)` Returns `obj` converted to a QPoint.
`static QPointF` | `toPointF(java.lang.Object obj)` Returns `obj` converted to a QPointF.
`static QRect` | `toRect(java.lang.Object obj)` Returns `obj` converted to a QRect.
`static QRectF` | `toRectF(java.lang.Object obj)` Returns `obj` converted to a QPointF.
`static QRegExp` | `toRegExp(java.lang.Object obj)` Returns the QRegExp value of `obj`.
`static QSize` | `toSize(java.lang.Object obj)` Returns the QSize value of `obj`.
`static QSizeF` | `toSizeF(java.lang.Object obj)` Returns the QSizeF value of `obj`.
`static java.lang.String` | `toString(java.lang.Object obj)`
`static QTime` | `toTime(java.lang.Object obj)` Returns the QTime value of `obj`.

Methods inherited from class com.trolltech.qt.QtJambiObject
`dispose, disposed, finalize, reassignNativeResources, tr, tr, tr`

Methods inherited from class com.trolltech.qt.QSignalEmitter
`blockSignals, disconnect, disconnect, signalsBlocked, signalSender, thread`

Methods inherited from class java.lang.Object
`clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface com.trolltech.qt.QtJambiInterface
`disableGarbageCollection, nativeId, nativePointer, reenableGarbageCollection, setJavaOwnership`

Field Detail

### Invalid

    public static final int Invalid

See Also:
  Constant Field Values

### Double

    public static final int Double

See Also:
  Constant Field Values

### String

    public static final int String

See Also:
  Constant Field Values

### Boolean

    public static final int Boolean

See Also:
  Constant Field Values

### ByteArray

    public static final int ByteArray

See Also:
  Constant Field Values

### BitArray

    public static final int BitArray

See Also:
  Constant Field Values

### Char

    public static final int Char

See Also:
  Constant Field Values

### Date

    public static final int Date

See Also:
  Constant Field Values

### DateTime

    public static final int DateTime

See Also:
  Constant Field Values

### Int

    public static final int Int

See Also:
  Constant Field Values

### Line

    public static final int Line

See Also:
  Constant Field Values

### LineF

    public static final int LineF

See Also:
  Constant Field Values

### Locale

    public static final int Locale

See Also:
  Constant Field Values

### Long

    public static final int Long

See Also:
  Constant Field Values

### Point

    public static final int Point

See Also:
  Constant Field Values

### PointF

    public static final int PointF

See Also:
  Constant Field Values

### Rect

    public static final int Rect

See Also:
  Constant Field Values

### RectF

    public static final int RectF

See Also:
  Constant Field Values

### RegExp

    public static final int RegExp

See Also:
  Constant Field Values

### Size

    public static final int Size

See Also:
  Constant Field Values

### SizeF

    public static final int SizeF

See Also:
  Constant Field Values

### StringList

    public static final int StringList

See Also:
  Constant Field Values

### Time

    public static final int Time

See Also:
  Constant Field Values

### Font

    public static final int Font

See Also:
  Constant Field Values

### Pixmap

    public static final int Pixmap

See Also:
  Constant Field Values

### Brush

    public static final int Brush

See Also:
  Constant Field Values

### Color

    public static final int Color

See Also:
  Constant Field Values

### Palette

    public static final int Palette

See Also:
  Constant Field Values

### Icon

    public static final int Icon

See Also:
  Constant Field Values

### Image

    public static final int Image

See Also:
  Constant Field Values

### Polygon

    public static final int Polygon

See Also:
  Constant Field Values

### Region

    public static final int Region

See Also:
  Constant Field Values

### Bitmap

    public static final int Bitmap

See Also:
  Constant Field Values

### Cursor

    public static final int Cursor

See Also:
  Constant Field Values

### SizePolicy

    public static final int SizePolicy

See Also:
  Constant Field Values

### KeySequence

    public static final int KeySequence

See Also:
  Constant Field Values

### Pen

    public static final int Pen

See Also:
  Constant Field Values

### TextLength

    public static final int TextLength

See Also:
  Constant Field Values

### TextFormat

    public static final int TextFormat

See Also:
  Constant Field Values

### UserType

    public static final int UserType

See Also:
  Constant Field Values

Method Detail

### canConvertToDouble

    public static boolean canConvertToDouble(java.lang.Object obj)

  Returns true if `obj` can be converted to a double; otherwise, returns false.

### toDouble

    public static double toDouble(java.lang.Object obj)

  Returns the double value of `obj` `obj`

  Returns:

### toDouble

    public static double toDouble(java.lang.Object obj,
                                  java.lang.Boolean[] ok)

  Returns the double value of `obj`. If the conversion fails, the first element in `ok` will be false; otherwise, it will be true.

### canConvertToString

    public static boolean canConvertToString(java.lang.Object obj)

  Returns true if `obj` can be converted to a string; otherwise, returns false. `obj`

  Returns:

### toString

    public static java.lang.String toString(java.lang.Object obj)

### canConvertToBoolean

    public static boolean canConvertToBoolean(java.lang.Object obj)

  Returns true if `obj` can be converted to boolean.

### toBoolean

    public static boolean toBoolean(java.lang.Object obj)

  Returns the boolean value of `obj`.

### canConvertToByteArray

    public static boolean canConvertToByteArray(java.lang.Object obj)

  Returns true if `obj` can be converted to a byte array.

  Returns:

### toByteArray

    public static QByteArray toByteArray(java.lang.Object obj)

  Returns `obj` converted to a QByteArray.

### canConvertToBitArray

    public static boolean canConvertToBitArray(java.lang.Object obj)

  Returns true if `obj` can be converted to a bit array.

### toBitArray

    public static QBitArray toBitArray(java.lang.Object obj)

  Returns `obj` as a QBitArray.

### canConvertToChar

    public static boolean canConvertToChar(java.lang.Object obj)

  Returns true if `obj` can be converted to a char.

### toChar

    public static char toChar(java.lang.Object obj)

  Returns the char value of `obj`

### canConvertToDate

    public static boolean canConvertToDate(java.lang.Object obj)

  Returns true if `obj` can be converted to a QDate.

### toDate

    public static QDate toDate(java.lang.Object obj)

  Returns `obj` converted to a QDate.

### canConvertToDateTime

    public static boolean canConvertToDateTime(java.lang.Object obj)

  Returns true if `obj` can be converted to a QDateTime.

### toDateTime

    public static QDateTime toDateTime(java.lang.Object obj)

  Returns `obj` converted to a QDateTime.

### canConvertToInt

    public static boolean canConvertToInt(java.lang.Object obj)

  Returns true if `obj` can be converted to an int.

### toInt

    public static int toInt(java.lang.Object obj)

  Returns the int value of `obj`.

### toInt

    public static int toInt(java.lang.Object obj,
                            java.lang.Boolean[] ok)

  Returns the int value of `obj`. The first element in `ok` will be false if the conversion failed.

### canConvertToLine

    public static boolean canConvertToLine(java.lang.Object obj)

  Returns true if `obj` can be converted to a QLine.

### toLine

    public static QLine toLine(java.lang.Object obj)

  Returns `obj` as a QLine.

### canConvertToLineF

    public static boolean canConvertToLineF(java.lang.Object obj)

  Returns true if `obj` can be converted to a QLineF.

### toLineF

    public static QLineF toLineF(java.lang.Object obj)

  Returns `obj` converted to a QLineF.

### canConvertToLocale

    public static boolean canConvertToLocale(java.lang.Object obj)

  Returns true if `obj` can be converted to a QLocale.

### toLocale

    public static QLocale toLocale(java.lang.Object obj)

  Returns `obj` converted to a QLocale.

### canConvertToPoint

    public static boolean canConvertToPoint(java.lang.Object obj)

  Returns true if `obj` can be converted to a QPoint.

### toPoint

    public static QPoint toPoint(java.lang.Object obj)

  Returns `obj` converted to a QPoint.

### canConvertToPointF

    public static boolean canConvertToPointF(java.lang.Object obj)

  Returns true if `obj` can be converted to a QPointF.

### toPointF

    public static QPointF toPointF(java.lang.Object obj)

  Returns `obj` converted to a QPointF.

### canConvertToRect

    public static boolean canConvertToRect(java.lang.Object obj)

  Returns true if `obj` can be converted to a QRect.

### toRect

    public static QRect toRect(java.lang.Object obj)

  Returns `obj` converted to a QRect.

### canConvertToRectF

    public static boolean canConvertToRectF(java.lang.Object obj)

  Returns true if `obj` can be converted to a QRectF.

### toRectF

    public static QRectF toRectF(java.lang.Object obj)

  Returns `obj` converted to a QPointF.

### canConvertToRegExp

    public static boolean canConvertToRegExp(java.lang.Object obj)

  Returns true if `obj` can be converted to a QRegExp.

### toRegExp

    public static QRegExp toRegExp(java.lang.Object obj)

  Returns the QRegExp value of `obj`.

### canConvertToSize

    public static boolean canConvertToSize(java.lang.Object obj)

  Returns true if `obj` can be converted to a QSize.

### toSize

    public static QSize toSize(java.lang.Object obj)

  Returns the QSize value of `obj`.

### canConvertToSizeF

    public static boolean canConvertToSizeF(java.lang.Object obj)

  Returns true if `obj` can be converted to a QSizeF.

### toSizeF

    public static QSizeF toSizeF(java.lang.Object obj)

  Returns the QSizeF value of `obj`.

### canConvertToTime

    public static boolean canConvertToTime(java.lang.Object obj)

  Returns true if `obj` can be converted to a QTime.

### toTime

    public static QTime toTime(java.lang.Object obj)

  Returns the QTime value of `obj`.

### canConvertToLong

    public static boolean canConvertToLong(java.lang.Object obj)

  Returns true if `obj` can be converted to a long.

### toLong

    public static long toLong(java.lang.Object obj)

  Returns the long value of `obj`

### toLong

    public static long toLong(java.lang.Object obj,
                              java.lang.Boolean[] ok)

  Returns the long value of `obj`. The first element in `ok` is set to false if the conversion failed.

### canConvertToList

    public static boolean canConvertToList(java.lang.Object obj)

  Returns true if `obj` can be converted to a list of type java.util.List.

### toList

    public static java.util.List<java.lang.Object> toList(java.lang.Object obj)

  Returns `obj` as a list.

### canConvertToMap

    public static boolean canConvertToMap(java.lang.Object obj)

  Returns true if `obj` can be converted to a map (java.util.Map).

### toMap

    public static java.util.Map<java.lang.String,java.lang.Object> toMap(java.lang.Object obj)

  Returns `obj` as a map.

Overview | Package | Class | Tree | Deprecated | Index | Help
Qt Jambi Home |
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD