diff options
Diffstat (limited to 'doc/codesnippets/doc/src/snippets/code/src_corelib_kernel_qvariant.cpp')
-rw-r--r-- | doc/codesnippets/doc/src/snippets/code/src_corelib_kernel_qvariant.cpp | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/doc/codesnippets/doc/src/snippets/code/src_corelib_kernel_qvariant.cpp b/doc/codesnippets/doc/src/snippets/code/src_corelib_kernel_qvariant.cpp new file mode 100644 index 000000000..d03b83e80 --- /dev/null +++ b/doc/codesnippets/doc/src/snippets/code/src_corelib_kernel_qvariant.cpp @@ -0,0 +1,99 @@ +//! [0] +out = QDataStream(...) +v = QVariant(123) // The variant now contains an 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 +y = v.toInt() // y = 0 since v cannot be converted to an int +s = v.toString() // s = tr("hello") (see QObject::tr()) +out << v // Writes a type tag and a QString to out +... +in = QDataStream(...) // (opening the previously written stream) +in >> v // Reads an Int variant +z = v.toInt() // z = 123 +print ("Type is %s", a v.typeName()) // prints "Type is int" +v = v.toInt() + 100 // The variant now hold the value 223 +v = QVariant(QStringList()) +//! [0] + + +//! [1] +x = QVariant() +y = QVariant(QString()) +z = QVariant(QString("")) +x.convert(QVariant.Int) +// x.isNull() == true +// y.isNull() == true, z.isNull() == false +// y.isEmpty() == true, z.isEmpty() == true +//! [1] + + +//! [2] +variant = QVariant(some_qcolor) +... +color = QColor(variant) +//! [2] + + +//! [3] +color = palette().background().color() +variant = QVariant(color) +//! [3] + + +//! [4] +v = QVariant() + +v.setValue(5) // Not supported by PySide +int i = v.toInt() // i is now 5 +QString s = v.toString() // s is now "5" + +MyCustomStruct c +v.setValue(c) + +... + +MyCustomStruct c2 = v.value<MyCustomStruct>() +//! [4] + + +//! [5] +QVariant v + +MyCustomStruct c // canConvert not supported by PySide +if (v.canConvert<MyCustomStruct>()) + c = v.value<MyCustomStruct>(v) + +v = 7 +int i = v.value<int>() // same as v.toInt() +QString s = v.value<QString>() // same as v.toString(), s is now "7" +MyCustomStruct c2 = v.value<MyCustomStruct>() // conversion failed, c2 is empty +//! [5] + + +//! [6] +QVariant v = 42 + +// canConvert not supported by PySide +v.canConvert<int>() // returns true +v.canConvert<QString>() // returns true + +MyCustomStruct s +v.setValue(s) + +v.canConvert<int>() // returns false +v.canConvert<MyCustomStruct>() // returns true +//! [6] + + +//! [7] +MyCustomStruct s // fromValue not supported by PySide +return QVariant::fromValue(s) +//! [7] + + +//! [8] +QObject *object = getObjectFromSomewhere() +QVariant data = qVariantFromValue(object) // not supported by PySide. +//! [8] |