-
Notifications
You must be signed in to change notification settings - Fork 369
/
Copy pathCppTool.cpp
84 lines (69 loc) · 1.7 KB
/
CppTool.cpp
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
#include "CppTool.h"
#include <QDebug>
int data_counter = 0;
CppData::CppData()
{
data.resize(1024 * 1024 * 100);
qDebug() << __FUNCSIG__ << ++data_counter;
}
CppData::CppData(const CppData &other)
{
id = other.id;
name = other.name;
data.resize(1024 * 1024 * 100);
qDebug() << __FUNCSIG__ << ++data_counter;
}
CppData::~CppData()
{
qDebug() << __FUNCSIG__ << --data_counter;
}
CppData &CppData::operator=(const CppData &other)
{
if (this == &other)
return *this;
id = other.id;
name = other.name;
data = other.data;
qDebug() << __FUNCSIG__;
return *this;
}
QString CppData::toString()
{
return QString("CppData(id:%1, name:%2)").arg(id).arg(name);
}
CppTool::CppTool(QObject *parent)
: QObject{parent}
{
}
CppTool::~CppTool()
{
}
CppTool *CppTool::getInstance()
{
static CppTool instance;
return &instance;
}
CppData CppTool::createData()
{
return CppData{};
}
void CppTool::setData(const CppData &data)
{
qDebug() << __FUNCSIG__ << data.id << data.name;
}
QVariant CppTool::createMeta()
{
// QImage/QPixmap这种稀缺资源类型,QML不会持有其引用,生成之后可以立即使用但没法用变量暂存
QImage data(1024 * 10, 1024 * 10, QImage::Format_Grayscale8);
// QByteArray data(1024 * 1024 * 100, '\0');
// QString data(1024 * 1024 * 100, '\0');
// QVector<QImage> data(10, QImage(1024 * 10, 1024 * 10, QImage::Format_Grayscale8));
QVariant var = QVariant::fromValue(data);
qDebug() << __FUNCSIG__ << data.size() << var.userType();
return var;
}
void CppTool::setMeta(const QVariant &var)
{
QImage data = var.value<QImage>();
qDebug() << __FUNCSIG__ << data.size() << var.userType();
}