bonsoir , je suis débutant sous Qt , je dois développez une application de tchat sous Qt , j'ai un probleme avec mon code , le compilateur eclipse CDT Qt integration , ne me donne aucune erreure mais quand je lance mon appli elle se plante je sais pas ou est le probleme , a l aide SVP.

voici mon code :
le .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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#ifndef LECLIENT_H
#define LECLIENT_H
 
#include <QtGui>
#include <QWidget>
#include <QPushButton>
#include <QLabel>
#include <QLineEdit>
#include <QTextEdit>
#include <QGridLayout>
#include <QTabWidget>
#include <QBuffer>
#include <QErrorMessage>
#include <QTcpSocket>
#include <QSpinBox>
 
#include "ui_leclient.h"
 
class leclient : public QWidget
{
    Q_OBJECT
 
public:
    leclient(QWidget *parent = 0);
    ~leclient();
public slots:
	void setConnected();
	void setDisconnected();
	void basculerLaConnection();
	void envoyer();
	void recevoir();
 
private:
	QPushButton *b_envoyer,*b_connecter;
	QSpinBox* s_port;
	QLabel *l_port,*l_serveur,*l_message,*l_pseudo;
	QLineEdit *le_msgsortant,*le_serveur,*le_pseudo;
	QTextEdit *txt_msgentrant;
	QGridLayout *layout1,*layout2;
	QTabWidget *onglets;
	QWidget *page1,*page2;
	QBuffer*		buffer;
	QTcpSocket*		socket;
    Ui::leclientClass ui;
};
 
#endif // LECLIENT_H
le .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
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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#include "leclient.h"
 
static const quint16 DEFAULT_PORT = 6667;
 
leclient::leclient(QWidget *parent)
    : QWidget(parent)
{
	setFixedSize(450, 450);
	b_envoyer=new QPushButton("envoyer");
	b_connecter=new QPushButton("connecter");
	l_port=new QLabel("port");
	l_serveur=new QLabel("serveur");
	le_serveur->setText("127.0.0.1");
	l_pseudo=new QLabel("pseudo");
	le_pseudo->setText("saisissez votre pseudo");
	l_message=new QLabel("message");
	s_port=new QSpinBox(this);
	s_port->setRange(1, 32767);
	s_port->setValue(DEFAULT_PORT);
	le_serveur=new QLineEdit(this);
	le_pseudo=new QLineEdit(this);
	le_msgsortant=new QLineEdit(this);
	le_msgsortant->setText("");
	txt_msgentrant=new QTextEdit(this);
	txt_msgentrant->setReadOnly(true);
	layout1 = new QGridLayout;
	layout1->addWidget(txt_msgentrant,0,0,1,3);
	layout1->addWidget(l_message,1,0);
	layout1->addWidget(le_msgsortant,1,1);
	layout1->addWidget(b_envoyer,1,2);
	layout2=new QGridLayout;
	layout2->addWidget(l_serveur,0,0);
	layout2->addWidget(le_serveur,0,1);
	layout2->addWidget(l_port,0,2);
	layout2->addWidget(s_port,0,3);
	layout2->addWidget(l_pseudo,1,0);
	layout2->addWidget(le_pseudo,1,1);
	layout2->addWidget(b_connecter,1,2);
	onglets=new QTabWidget(this);
	page1 = new QWidget;
	page2 = new QWidget;
	page1->setLayout(layout1);
	page2->setLayout(layout2);
	onglets->addTab(page1, "chat");
	onglets->addTab(page2, "configuration");
	ui.setupUi(this);
	//construction des objet reseau
	buffer = new QBuffer(this);
	socket = new QTcpSocket(this);
	//ouverture du buffer en lecture ecriture
	buffer->open(QIODevice::ReadWrite);
	//connection des signaux avec les slots
	connect(le_msgsortant, SIGNAL(returnPressed()), SLOT(envoyer()));
	connect(b_envoyer, SIGNAL(clicked()), SLOT(envoyer()));
	connect(b_connecter, SIGNAL(clicked()), SLOT(basculerLaConnection()));
	connect(socket, SIGNAL(connected()), SLOT(setConnected()));
	connect(socket, SIGNAL(disconnected()), SLOT(setDisconnected()));
	connect(socket, SIGNAL(readyRead()), SLOT(recevoir()));
 
	setDisconnected();
}
 
leclient::~leclient()
{
	buffer->close();
}
void leclient::setConnected()
{
	s_port->setEnabled(false);
	le_serveur->setEnabled(false);
	le_pseudo->setEnabled(true);
	le_msgsortant->setEnabled(true);
	txt_msgentrant->setEnabled(true);
	txt_msgentrant->clear();
	b_envoyer->setEnabled(true);
	b_connecter->setText("Deconnecter");
}
 
void leclient::setDisconnected()
{
	s_port->setEnabled(true);
	le_serveur->setEnabled(true);
	le_pseudo->setEnabled(false);
	le_msgsortant->setEnabled(false);
	txt_msgentrant->setEnabled(false);
	b_envoyer->setEnabled(false);
	b_connecter->setText("Connecter");
}
//slot de basculement
void leclient::basculerLaConnection()
{
	//si non connecter ,connecter au serveur avec le port choisi
	//sinon deconnecter
	if (socket->state() == QAbstractSocket::UnconnectedState)
	{
		socket->connectToHost(le_serveur->text(), s_port->value());
	}
	else
	{
		socket->disconnectFromHost();
	}
}
 
//slot pour l envoi du mesage
void leclient::envoyer()
{
	//ecrire dans la socket le message
	socket->write("-" + le_pseudo->text().toLatin1() + ">>> " + le_msgsortant->text().toLatin1() + "\n");
	le_msgsortant->clear();
}
 
void leclient::recevoir()
{
	qint64 bytes = buffer->write(socket->readAll());
	buffer->seek(buffer->pos() - bytes);
	while (buffer->canReadLine())
	{
		QString line = buffer->readLine();
		txt_msgentrant->append(line.simplified());
	}
}
le main
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
#include "leclient.h"
#include <QApplication>
 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    leclient client;
    client.show();
    return a.exec();
}

merci de votre aide .
vraiment je suis perdu