【问题标题】:Error while geting html code获取html代码时出错
【发布时间】:2014-11-12 12:57:45
【问题描述】:

我正在尝试使用 QNetworkAccessManager 获取 html 代码,但它不起作用。我的程序中的回复结果是网站,但我需要 html。如何转换?

Widget::Widget(QWidget *pwgt): QWidget(pwgt)
{
   field = new QTextEdit(this);
   QNetworkReply *reply = manager.get(QNetworkRequest(QUrl("http://www.google.com")));
   QEventLoop loop;
   connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
   loop.exec();
   QString text = reply->read();
   field->setText(text);
}

【问题讨论】:

    标签: html c++ qt


    【解决方案1】:

    来自 Qt 文档:

    void QTextEdit::setText(const QString & text) [slot]

    设置文本编辑的文本。文本可以是纯文本或 HTML,并且 文本编辑会尝试猜测正确的格式。

    直接使用 setHtml() 或 setPlainText() 来避免文本编辑 猜测。

    您可以使用QTextEdit::setPlainText 将文本编辑器的内容设置为纯文本。

    【讨论】:

      【解决方案2】:

      首先不要试图让异步代码同步...

      问题可能是您在请求完成之前阅读了回复的内容。将finished() 信号与(您的班级的)插槽连接,以尝试读取那里的数据(请参阅http://qt-project.org/doc/qt-5/qnetworkaccessmanager.html

      也尝试将readAll() 用于 QNetworkReply

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-28
        • 1970-01-01
        • 1970-01-01
        • 2013-04-06
        • 2015-08-24
        • 1970-01-01
        相关资源
        最近更新 更多