2014-06-21 103 views
-2

我得到錯誤〜mainwindow.cpp:9:錯誤:重新定義'MainWindow :: MainWindow(QWidget *)'MainWindow :: MainWindow(QWidget * parent):我很確定它抱怨錯誤的派生類名稱。基類是MainWindow,但我沒有看到派生類是什麼。與QObject缺少派生類

//mainwindow.cpp

#include "mainwindow.h" 
#include "ui_mainwindow.h" 
#include <QNetworkAccessManager> 
#include <QUrl> 
#include <QNetworkRequest> 
#include <QNetworkReply> 
#include <QImageReader> 

MainWindow::MainWindow(QWidget *parent) : 
    QMainWindow(parent), 
    ui(new Ui::MainWindow) 
{ 
    ui->setupUi(this); 
} 

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

void coreEng::requestPage(){ 
    QUrl url("http://www.nyctelecomm.com"); 
    QNetworkReply* reply = nam->get(QNetworkRequest(url)); 
} 

void coreEng::finishedSlot(QNetworkReply* reply){ 

    QVariant statusCodeV = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute); 

    QVariant redirectionTargetUrl = reply->attribute(QNetworkRequest::RedirectionTargetAttribute); 

    if (reply->error() == QNetworkReply::NoError) 
    { 

     QImageReader imageReader(reply); 
     QImage pic = imageReader.read(); 

     QByteArray bytes = reply->readAll(); // bytes 
     QString string(bytes); // string 
    } 

    else 
    { 

    } 

// delete reply(); 

} 

void MainWindow::on_lcdNumber_overflow() 
{ 

    QByteArray replyData = netReply->readAll(); 
} 

void MainWindow::on_pushButton_clicked() 
{ 
    QObject::on_pushButton_clicked(nam, SIGNAL(finished(QNetworkReply*)), 
    this, SLOT(finishedSlot(QNetworkReply*))); 
} 

//mainwindow.h

#ifndef MAINWINDOW_H 
#define MAINWINDOW_H 

#include <QMainWindow> 
#include <QObject> 
#include <QNetworkAccessManager> 

namespace Ui { 
class MainWindow; 
} 

class MainWindow : public QMainWindow 
{ 
    Q_OBJECT 

public: 
    explicit MainWindow(QWidget *parent = 0): 
    QMainWindow(parent) 
     { 
      nam = new QNetworkAccessManager(); 
     } 
    ~MainWindow(); 

private: 
    Ui::MainWindow *ui; 

public slots: 
    //void connect(); 
    void on_pushButton_clicked(); 
    void requestPage(); 
    void finishedSlot(QNetworkReply* reply); 
private slots: 
    void on_lcdNumber_overflow(); 

private: 
    QNetworkAccessManager* nam; 

}; 

#endif // MAINWINDOW_H 

//main.cpp

#include "mainwindow.h" 
#include <QApplication> 

int main(int argc, char *argv[]) 
{ 
    QApplication a(argc, argv); 

    MainWindow mConnect; 
    mConnect.on_pushButton_clicked(); 
    mConnect.requestPage(); 

    MainWindow w; 
    w.show(); 

    return a.exec(); 
} 

回答

0

您已經定義MainWindow::MainWindow兩次。首先在頭文件中,然後在源文件中。這是在錯誤消息中說的。

explicit MainWindow(QWidget *parent = 0): 
QMainWindow(parent) 
    { 
     nam = new QNetworkAccessManager(); 
    } 

//

MainWindow::MainWindow(QWidget *parent) : 
    QMainWindow(parent), 
    ui(new Ui::MainWindow) 
{ 
    ui->setupUi(this); 
} 
+0

謝謝!!!!!! – brad