Bonjour a tous,
je me lance dans la programation avec qt, et cela m'a l'air bien plus sympa qu'avec les MFC!! Toutefois les signaux et slots, ca demande encore un peu de boulot.
Sources qt 4.1.4 compilée OK, qt-assistant, qt-demo etc ... ca marche nickel.
Compilo : vc++ du msvc.net 2003 13.10.3077 for 80x86
MS Plateform sdk 2003 R2
J'essaie des petits pgms pour me familiariser avec les signaux et slots. La compilation se passe sans problemes. Quand je lance le pgm....RIEN... le vide, la ligne blanche, encephalograme plat. J'ai repiqué un code sur internet, au cas ou... pareil, rien (voir a la fin du mail). J'ai recompilé les sources, même chose.
Le code a la fin du mele definit 2 class "sender" et une classe "receiver". Je connecte le deux premiers au dernier. Lorsque le signal est emis, je m'attends a avoir une sortie ecran (venat du reciever). Mais en fait rien du tout. Il se compile bien, pas d'erreur.
je seche...
si qq peu me dire ou est le pb.
merci d'avance,
Alexis
CODE (avec remerciement indirect tutoriaux internet)
HEADER
MAIN
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
61
62 #include <iostream> #include <QObject.h> class Reciever : public QObject { Q_OBJECT public: int ir; Reciever( int i ) { ir=i; } public slots: void get( int x ) { std::cout << "Recieved: " << x << std::endl; } }; class SenderA : public QObject { Q_OBJECT public: int ia; SenderA( int i) { ia=i; } void doSend() { emit( send( 7 ) ); } signals: void send( int ); }; class SenderB : public QObject { Q_OBJECT public: int ib; SenderB( int i) { ib=i; } void doStuff() { emit( transmit( 5 ) ); } signals: void transmit( int ); };
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 #include <QObject> #include <QApplication> //Contient la def des class plus haut. #include "classFile.h" using namespace std; int main( int argc, char **argv ) { Reciever r(1); SenderB b(2); SenderA a(3); QObject::connect(&b,SIGNAL(transmit(int)),&r,SLOT(get(int))); QObject::connect(&a,SIGNAL(sent(int)),&r,SLOT(get(int))); b.doStuff(); a.doSend(); return 0; }
Partager