Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 关于连接的新手问题_C++_Qt - Fatal编程技术网

C++ 关于连接的新手问题

C++ 关于连接的新手问题,c++,qt,C++,Qt,我只是尝试设置一个小的QT示例,但connect语句无法编译。 来自编译器的错误消息是:“没有匹配的函数用于调用‘MainWindow::connect(…’” 我对她做了什么错事 谢谢你的帮助 #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <QNetworkAccessManager> #include <QNetworkReply> namespace

我只是尝试设置一个小的QT示例,但connect语句无法编译。 来自编译器的错误消息是:“没有匹配的函数用于调用‘MainWindow::connect(…’”

我对她做了什么错事

谢谢你的帮助

#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

QObject::connect需要指向QObject的指针,您正在将networkManager作为普通变量传递。只需将connect(networkManager…)更改为connect(&networkManager…)即可

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