获取HTML代码时出错

时间:2014-11-12 12:57:45

标签: html c++ qt

我试图使用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);
}

2 个答案:

答案 0 :(得分:1)

来自Qt文档:

  

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

     

设置文字编辑的文字。文本可以是纯文本或HTML和   文本编辑将尝试猜测正确的格式。

     

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

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

答案 1 :(得分:0)

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

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

还尝试使用readAll()作为QNetworkReply