Bonjour,

J'essaye de créer un petit updater. Actuellement, sa GUI se limite à un bouton. Je connecte le signal cliked() de ce bouton au signal lauchnUpdate() de ma classe updaterHandler. Un problème survient :

.\src\main.cpp(15) : error C2665: 'QObject::connect': aucune des 2 surcharges n'a pu convertir tous les types d'arguments
a:\qt\4.5.2\include\qtcore\../../src/corelib/kernel/qobject.h(191): peut être 'bool QObject::connect(const QObject *,const char *,const QObject *,const char *,Qt::ConnectionType)'
a:\qt\4.5.2\include\qtcore\../../src/corelib/kernel/qobject.h(203): ou 'bool QObject::connect(const QObject *,const char *,const char *,Qt::ConnectionType) const'
lors de la tentative de mise en correspondance de la liste des arguments '(QPushButton *, const char *, updaterHandler (__cdecl *)(void), const char *)'
J'utilise Visual Studio 2008 avec Qt 4.5.2, compilé à la main.

Voici mes sources.

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
#include <QtGui/QApplication>
#include <QtGui/QPushButton>
 
#include <QObject>
 
#include <QtNetwork/QNetworkAccessManager>
#include <QtNetwork/QNetworkRequest>
#include <QtNetwork/QNetworkReply>
 
#include <QtCore/QUrl>
#include <QtCore/QFile>
 
class updaterHandler : public QObject
{
Q_OBJECT
public:
updaterHandler(QObject * parent = 0);
~updaterHandler();
public slots:
void launchUpdate();
private:
QNetworkAccessManager manager;
QNetworkRequest request;
QUrl url;
QFile file;
QNetworkReply * reply;
};
 
#include "main.moc"
 
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
updaterHandler handler();
QPushButton bouton("Mettre jour");
QObject::connect (& bouton , SIGNAL( pressed() ),
& handler, SLOT ( launchUpdate() ) );
bouton.show();
return a.exec();
}
Si je déclare mon handler en tant que pointeur, et que j'enlève mon esperluette à la connexion, ça compile parfaitement. Par contre, la connexion plante misérablement à l'exécution...

Quelqu'un aurait-il une idée ? Merci d'avance !