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