-
Notifications
You must be signed in to change notification settings - Fork 0
/
test_qvariant.cc
106 lines (90 loc) · 1.91 KB
/
test_qvariant.cc
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
100
101
102
103
104
105
106
/*
* This source code is licensed under the GNU General Public License,
* Version 2. See the file COPYING for more details.
*/
#include <QDebug>
#include <QList>
#include <QPair>
#include <QString>
static void test1()
{
QStringList list{
QStringLiteral("First"),
QStringLiteral("Second"),
};
QVariant arg(list);
qDebug() << arg;
}
static void test2()
{
QVariant arg2((QStringList){
QStringLiteral("First"),
QStringLiteral("Second"),
});
qDebug() << arg2;
}
namespace {
struct StringVariant {
QString s;
QVariant v;
};
}
Q_DECLARE_METATYPE(StringVariant)
static void test3()
{
const QList<StringVariant> vl = {
{
QStringLiteral("First"),
QVariant(),
},
};
QVariant arg = QVariant::fromValue(vl);
qDebug() << arg;
}
static void test4()
{
const QList<QMap<QString,QVariant>> vl = {
{
{ QStringLiteral("First"), QVariant() },
{ QStringLiteral("Second"), QVariant() },
},
};
QVariant arg = QVariant::fromValue(vl);
qDebug() << arg;
}
static void test5()
{
const QMap<QString,QVariant> vm = {
{ QStringLiteral("FirstUnused"), QVariant(QStringLiteral("FirstValue")) },
{ QStringLiteral("SecondUnused"), QVariant(QStringLiteral("SecondValue")) },
};
QVariant arg = QVariant::fromValue(vm);
qDebug() << arg;
}
static void test6(const QString &arg)
{
bool ok;
qDebug() << arg.toInt(&ok) << ok;
}
static void test7()
{
QVariant a(73);
QVariant b(a);
QVariant e(QMetaType::QVariant, &a);
QVariant f(e);
qDebug() << __func__ << a << b;
qDebug() << __func__ << e << e.value<QVariant>();
qDebug() << __func__ << f;
}
int main()
{
test1();
test2();
test3();
test4();
test5();
test6(QStringLiteral("123"));
test6(QStringLiteral("-123"));
test7();
return EXIT_SUCCESS;
}