Bonjour,
j'ai lu pas mal de discussion autour de QTimer et QThread mais je n'arrive pas a faire fonctionner mon code correctement
Je cherche a creer un QThread qui vas injecter des donnees a intervalle regulier dans mon thread principal.
mon probleme:
le thread se cree bien, mais le timer a l'interieur ne se met a tourner que quand mon thread principal peut executer des ProcessEvents.
J'ai besoin que ce soit independant!
Comment faire merci de votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 // thread principal tThread *tThr; tThr = new tThread(NULL); connect(tThr, SIGNAL(setTimer_signal()), this, SLOT(getTimer_slot()) ); tThr->start(); // la mon appli lance des calculs, il n'y a pas de ProcessEvents a l'interieur! calcul(); // le timer thread tThread::tThread (QObject *parent) { } tThread::~tThread () { delete timer; } void tThread::setTimer_slot () { // do something emit setTimer_signal(); } void tThread::startTimer_slot () { timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(setTimer_slot())); timer->start(1000); } void tThread::run () { startTimer_slot (); exec(); } void tThread::stop () { quit(); wait(); }
Partager