Hello
1 heure a essayer de trouver une alternative, jai pas reussi!
Alors, jessaye de faire creer un socket avec comme parent, ma classe mw qui est la fenetre principale de mon application, je comprend tout simplement pas pourquoi Qt veut pas m'compiler ca ;(
l'erreur:
expected ')' before token '*' dans le fichier sockethandler.h à
socketHandler(mainWindow *mw);main.cpp
[code]
#include <QtGui/QApplication>
#include "mainwindow.h"
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
mainWindow mw;
mw.show();
return app.exec();
}
[/code]
mainwindow.cpp
[code]
#include "mainwindow.h"
#include "sockethandler.h"
mainWindow::mainWindow() : QWidget()
{
setFixedSize(1024,595);
setCursor(QCursor(Qt::OpenHandCursor));
setStyleSheet(QString::fromUtf8("background-color: rgb(0, 0, 0);color: rgb(255, 255, 255);"));
setWindowTitle(QString("HighStory"));
}
void mainWindow::socket()
{
this->_s = new socketHandler(this);
}
socketHandler *mainWindow::getSocketHandler()
{
}
[/code]
mainwindow.h
[code]
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QWidget>
#include "sockethandler.h"
class mainWindow : public QWidget
{
public:
mainWindow();
void socket();
socketHandler *getSocketHandler();
private:
socketHandler *_s;
};
#endif // MAINWINDOW_H
[/code]
sockethandler.cpp
[code]
#include "sockethandler.h"
#include "mainwindow.h"
socketHandler::socketHandler(mainWindow *mw)
{
/* vars */
_connected = false;
_packetlength = 0;
/* init socket */
_sock = new QTcpSocket(mw);
/* events */
mw->connect(this->_sock, SIGNAL(readyRead()), this, SLOT(dataReceived()));
mw->connect(this->_sock, SIGNAL(connected()), this, SLOT(connected()));
mw->connect(this->_sock, SIGNAL(disconnected()), this, SLOT(disconnected()));
mw->connect(this->_sock, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(socketError(QAbstractSocket::SocketError)));
}
void socketHandler::connect(QString host, quint16 port)
{
this->getSocket()->connectToHost(host, port);
}
QTcpSocket *socketHandler::getSocket()
{
return this->_sock;
}
void socketHandler::connected()
{
this->_connected = true;
}
void socketHandler::disconnected()
{
this->_connected = false;
this->_packetlength = 0;
}
[/code]
sockethandler.h
[code]
#ifndef SOCKETHANDLER_H
#define SOCKETHANDLER_H
#include <QtNetwork>
#include "mainwindow.h"
class socketHandler
{
public:
socketHandler(mainWindow *mw);
void connect(QString host, quint16 port);
QTcpSocket *getSocket();
private slots:
void dataReceived();
void connected();
void disconnected();
void socketError(QAbstractSocket::SocketError error);
void send();
private:
QTcpSocket *_sock;
quint16 _packetlength;
bool _connected;
};
#endif // SOCKETHANDLER_H
[/code]