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