Liu Zhian
2018-01-29 15:26
采纳率: 60%
浏览 2.9k
已采纳

Qt槽函数接受不到信息?

我只是想做一个非常简单的qt关于网络的测试,读取一个网页内容作为请求,解析出其中信息,代码附上:

myHTTP.h
#pragma once
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QtWidgets/QMainWindow>
#include "ui_myHTTP.h"

class myHTTP : public QMainWindow
{
    Q_OBJECT

public:
    myHTTP(QWidget *parent = Q_NULLPTR);

private:
    Ui::myHTTPClass ui;
    QNetworkAccessManager *manager;
public slots:
    void  slotFinished(QNetworkReply* reply);
};

 myHTTP.cpp
 #include "myHTTP.h"
#include <QUrl>
myHTTP::myHTTP(QWidget *parent)
    : QMainWindow(parent)
{
    ui.setupUi(this);
    manager = new QNetworkAccessManager(this);
    bool b = connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(slotFinished((QNetworkReply*))));
    /*此处b总是为false*/
    manager->get(QNetworkRequest(QUrl("http://www.baidu.com")));  //  开启一个以百度首页的网络请求

}
void myHTTP::slotFinished(QNetworkReply* reply)
{
    QString allData = reply->readAll();
    ui.textBrowser->setText(allData);

    // 删除网络回复资源
    reply->deleteLater();
}

}
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • ilyyangminglong1 2018-02-10 04:26
    已采纳

    图片说明

    图片说明

    打赏 评论
  • devmiao 2018-01-29 15:47
    打赏 评论
  • qq_34542649 2018-01-29 15:48

    程序跑起来看看log两个connect连接时有没有异常,再看看emit有没有执行

    打赏 评论
  • Chen乔治 2018-01-29 16:07

    楼主指的是Go to slot(槽函数)没有接收到网页信息?那试试用全局变量是否可行!

    打赏 评论

相关推荐 更多相似问题