2010-01-17 4 views
6

J'ai juste essayé de mettre en place un petit exemple QT et l'instruction connect ne parvient pas à compiler. le message d'erreur du compilateur est: « pas de fonction concordante pour l'appel à « MainWindow :: connect (... » »Débutant QT question sur se connecter

ce que je fais mal son

Merci pour votre aide

?.
#ifndef MAINWINDOW_H 
#define MAINWINDOW_H 

#include <QMainWindow> 
#include <QNetworkAccessManager> 
#include <QNetworkReply> 

namespace Ui { 
    class MainWindow; 
} 

class MainWindow : public QMainWindow { 
    Q_OBJECT 
public: 
    MainWindow(QWidget *parent = 0); 
    ~MainWindow(); 

protected: 
    void changeEvent(QEvent *e); 

private: 
    Ui::MainWindow *ui; 
    QNetworkAccessManager networkManager; 

private slots: 
    void on_requestButton_clicked(); 
    void on_authenticationRequired(QNetworkReply* reply, QAuthenticator* auth); 
    void on_finished(QNetworkReply* reply); 
}; 

#endif // MAINWINDOW_H 

#include "mainwindow.h" 
#include "ui_mainwindow.h" 

void MainWindow::on_requestButton_clicked() 
{ 

} 

void MainWindow::on_authenticationRequired(QNetworkReply* reply, QAuthenticator* auth) 
{ 

} 

void MainWindow::on_finished(QNetworkReply* reply) 
{ 

} 

MainWindow::MainWindow(QWidget *parent) : 
    QMainWindow(parent), 
    ui(new Ui::MainWindow), networkManager(this) 
{ 
    ui->setupUi(this); 
    connect(networkManager, SIGNAL(finished(QNetworkReply*)), 
      this, SLOT(on_finished(QNetworkReply*))); 
    connect(networkManager,SIGNAL(authenticationRequired(QNetworkReply*, QAuthenticator*)), 
      this, SLOT(on_authenticationRequired(QNetworkReply*,QAuthenticator*))); 
} 

MainWindow::~MainWindow() 
{ 
    delete ui; 
} 

void MainWindow::changeEvent(QEvent *e) 
{ 
    QMainWindow::changeEvent(e); 
    switch (e->type()) { 
    case QEvent::LanguageChange: 
     ui->retranslateUi(this); 
     break; 
    default: 
     break; 
    } 
} 

Répondre

8

QObject :: connect attend des pointeurs vers QObject de, vous passez NetworkManager comme une variable normale. Il suffit de changer connect (NetworkManager ...) pour vous connecter (& networkManager ...) devrait faire l'affaire.

+0

merci beaucoup. –