2010-01-17 17 views
6

Ho appena provato a impostare un piccolo esempio di QT e l'istruzione connect non riesce a compilare. il messaggio di errore del compilatore è: "nessuna funzione di corrispondenza per la chiamata a 'MainWindow :: connect (...'"Domanda QT per principianti sulla connessione

quello che sto facendo male il suo

Grazie per il vostro aiuto

?.
#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; 
    } 
} 

risposta

8

QObject :: connettersi aspetta puntatori a QObject di, si passa NetworkManager come variabile normale. Basta cambiare connect (NetworkManager ...) per collegare (& networkManager ...) dovrebbe fare il trucco.

+0

grazie mille. –