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
|
#include <QApplication>
#include <QLabel>
#include <QPropertyAnimation>
#include <QSequentialAnimationGroup>
#include "tracer.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QWidget window;
window.resize(720, 96);
window.show();
QLabel *label1 = new QLabel(&window);
label1->setPixmap(QPixmap(":/icons/left.png"));
label1->move(16, 16);
label1->show();
QLabel *label2 = new QLabel(&window);
label2->setPixmap(QPixmap(":/icons/right.png"));
label2->move(320, 16);
label2->show();
QPropertyAnimation *anim1 = new QPropertyAnimation(label1, "pos");
anim1->setDuration(2500);
anim1->setStartValue(QPoint(16, 16));
anim1->setEndValue(QPoint(320, 16));
QPropertyAnimation *anim2 = new QPropertyAnimation(label2, "pos");
anim2->setDuration(2500);
anim2->setStartValue(QPoint(320, 16));
anim2->setEndValue(QPoint(640, 16));
QSequentialAnimationGroup group;
group.addAnimation(anim1);
group.addAnimation(anim2);
Tracer tracer(&window);
QObject::connect(anim1, SIGNAL(valueChanged(QVariant)),
&tracer, SLOT(recordValue(QVariant)));
QObject::connect(anim2, SIGNAL(valueChanged(QVariant)),
&tracer, SLOT(recordValue(QVariant)));
QObject::connect(anim1, SIGNAL(finished()), &tracer, SLOT(checkValue()));
QObject::connect(anim2, SIGNAL(finished()), &tracer, SLOT(checkValue()));
group.start();
return app.exec();
}
|