blob: d03b83e8068451f4a0c70147eb35d113b9650393 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
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]
|