C++ 缺少具有QObject的派生类

C++ 缺少具有QObject的派生类,c++,qt,class,inheritance,C++,Qt,Class,Inheritance,我得到了错误~mainwindow.cpp:9:error:mainwindow::mainwindow(QWidget*)的重新定义mainwindow::mainwindow(QWidget*父):我很确定它在抱怨错误的派生类名。基类是MainWindow,但我看不出派生类是什么 //mainwindow.cpp #include "mainwindow.h" #include "ui_mainwindow.h" #include <QNetworkAccessManager>

我得到了错误~mainwindow.cpp:9:error:mainwindow::mainwindow(QWidget*)的重新定义mainwindow::mainwindow(QWidget*父):我很确定它在抱怨错误的派生类名。基类是MainWindow,但我看不出派生类是什么

//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”
#包括“ui_main window.h”
#包括
#包括
#包括
#包括
#包括
主窗口::主窗口(QWidget*父窗口):
QMainWindow(父级),
用户界面(新用户界面::主窗口)
{
用户界面->设置用户界面(此);
}
MainWindow::~MainWindow()
{
删除用户界面;
}
void coreEng::requestPage(){
QUrl url(“http://www.nyctelecomm.com");
QNetworkReply*reply=nam->get(QNetworkRequest(url));
}
void coreEng::finishedSlot(QNetworkReply*reply){
QVariant statusCodeV=回复->属性(QNetworkRequest::HttpStatusCodeAttribute);
QVariant redirectionTargetUrl=回复->属性(QNetworkRequest::RedirectionTargetAttribute);
如果(回复->错误()==QNetworkReply::NoError)
{
QImageReader imageReader(回复);
QImage pic=imageReader.read();
QByteArray bytes=reply->readAll();//字节
QString字符串(字节);//字符串
}
其他的
{
}
//删除回复();
}
void main window::on_lcdNumber_overflow()
{
QByteArray replyData=netReply->readAll();
}
void主窗口::在按钮上单击()
{
QObject::点击按钮(nam,信号(完成(QNetworkReply*)),
这个插槽(finishedSlot(QNetworkReply*));
}
//主窗口

#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
\ifndef主窗口
#定义主窗口
#包括
#包括
#包括
名称空间用户界面{
类主窗口;
}
类主窗口:公共QMainWindow
{
Q_对象
公众:
显式主窗口(QWidget*parent=0):
QMainWindow(父窗口)
{
nam=新的QNetworkAccessManager();
}
~main窗口();
私人:
Ui::MainWindow*Ui;
公众时段:
//void connect();
单击按钮时无效();
void requestPage();
作废finishedSlot(QNetworkReply*reply);
专用插槽:
在溢出()时无效;
私人:
QNetworkAccessManager*nam;
};
#endif//main窗口
//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();
}
#包括“mainwindow.h”
#包括
int main(int argc,char*argv[])
{
质量保证申请a(argc、argv);
主窗口连接;
mConnect.on_按钮_点击();
mConnect.requestPage();
主窗口w;
w、 show();
返回a.exec();
}

您已经定义了两次
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);
}