Bonjour à tous!

J'expérimente Qt depuis 2 semaines et j'ai un problème.
J'ai abordé le tutoriel de trolltech sur les signals et les slots.
Voici ma situation, j'écris un petit chat.

À la connexion avec le serveur, le client lance un thread pour gérer la réception de messages.

Comme il semble impossible de toucher au gui dans mon thread, je tente de créer 2 signals et 2 slots qui y sont ratachées.

Des détails:
- Le nom de la classe qui contient ma fonction de thread est qtsock.cpp
- La slot appelé se trouve dans le qtclient2007Widget.cpp

Le code associé:

qtsock.h:
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
class qtsock : public QObject
{
	Q_OBJECT
	public:
    		qtsock();
    		~qtsock();
		int CreateSock(const char * ip);
		bool sendsock(char * msg);
		static void * TalkThread( void * SocketConnexion);
 
	signals:
		void NewMessage();
		void NewClient();
 
	private:
		/* Variables globales */
		int DestSock;
		struct sockaddr_in destSockAddr;
		bool endsock();
};
Dans le thread, j'ai simplement;
Le qtclient2007Widget.cpp:
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
void qtclient2007Widget::btnConnect_clicked()
{
	/* Variables */
	//qtsock cQtSock;
	QString Nick;
	QString Ip;
	int SocketConnexion;
	int result;
 
	/* Identifiant du thread */
	pthread_t thread_id;
 
	connect(&cQtSock, SIGNAL( NewMessage() ), &qtclient2007Widget, SLOT( AddMsgToTextbox() ));
	connect(&cQtSock, SIGNAL( NewMessage() ), &qtclient2007Widget, SLOT( AddNicknameToList() ));
...	
}
void qtclient2007Widget::AddMsgToTextbox()
{}
void qtclient2007Widget::AddNicknameToList()
{}
Le qtclient2007Widget.h:
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
class qtclient2007Widget : public qtclient2007WidgetBase
{
    Q_OBJECT
 
public:
    qtclient2007Widget(QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
    ~qtclient2007Widget();
 
    /* Variables */
    qtsock cQtSock;
 
public slots:
    /*$PUBLIC_SLOTS$*/
	virtual void btnEnvoie_clicked();
	virtual void btnConnect_clicked();
	virtual void AddMsgToTextbox();
	virtual void AddNicknameToList();
 
protected:
    /*$PROTECTED_FUNCTIONS$*/
protected slots:
    /*$PROTECTED_SLOTS$*/
};
À la compilation j'obtiens cette erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
/home/shaika-dzari/QT/qtclient2007/src/qtclient2007widget.cpp: In member function ‘virtual void qtclient2007Widget::btnConnect_clicked()’:
/home/shaika-dzari/QT/qtclient2007/src/qtclient2007widget.cpp:54: error: expected primary-expression before ‘,’ token
/home/shaika-dzari/QT/qtclient2007/src/qtclient2007widget.cpp:55: error: expected primary-expression before ‘,’ token
gmake[2]: *** [qtclient2007widget.o] Erreur 1
gmake[2]: quittant le répertoire « /home/shaika-dzari/QT/qtclient2007/debug/src »
gmake[1]: *** [all-recursive] Erreur 1
gmake[1]: quittant le répertoire « /home/shaika-dzari/QT/qtclient2007/debug »
gmake: *** [all] Erreur 2
*** Sortie avec l'état : 2 ***

À noter j'effectue le connect lorsque mon bouton connexion est pressé.
Dois-je effectué le connect ailleurs?

N'hésiter pas à me signaler les erreurs ou à donner vos remarques.