2010-01-17 77 views
6

我只是试图设置一个小的QT示例,并且connect语句无法编译。 从编译器的错误信息是:“为号召不匹配函数‘的MainWindow ::连接(......’”关于连接的新手QT问题

我究竟做错了她

谢谢你的帮助

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

回答

8

的QObject ::连接预计指针的QObject的,要传递NETWORKMANAGER作为一个正常的变量,只是改变连接(NetworkManager的...)连接(& networkManager ...)应该做的伎俩。

+0

非常感谢。 –