-
Notifications
You must be signed in to change notification settings - Fork 83
Expand file tree
/
Copy pathloadthread.cpp
More file actions
48 lines (40 loc) · 1.05 KB
/
loadthread.cpp
File metadata and controls
48 lines (40 loc) · 1.05 KB
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
#if _MSC_VER >= 1600
#pragma execution_character_set("utf-8")
#endif
#include "loadthread.h"
#include <QMovie>
#include <QLabel>
#include <QDesktopWidget>
#include <QApplication>
LoadThread::LoadThread(QObject *parent) : QThread(parent)
{
stopped = false;
}
void LoadThread::stop()
{
stopped = true;
}
void LoadThread::run()
{
QMovie *movie = new QMovie(":/image/loading.gif");
QLabel *label = new QLabel("", 0);
label->setAttribute(Qt::WA_DeleteOnClose);
label->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint);
label->setScaledContents(true);
label->setMovie(movie);
movie->start();
label->show();
int frmX = label->width();
int frmY = label->height();
QDesktopWidget w;
int deskWidth = w.availableGeometry().width();
int deskHeight = w.availableGeometry().height();
QPoint movePoint(deskWidth / 2 - frmX / 2, deskHeight / 2 - frmY / 2);
label->move(movePoint);
while(!stopped) {
qApp->processEvents();
msleep(10);
}
label->close();
delete movie;
}