C++ Qt-QWebView::load()函数工作不正常

C++ Qt-QWebView::load()函数工作不正常,c++,qt,qt4,qwebview,C++,Qt,Qt4,Qwebview,我正在为我当前的项目使用Qt4.7。我在一个对话框中有一个QWebView对象,我需要显示一个需要postdata的网页(它是搜索的结果)。到目前为止,我有以下几点: QNetworkAccessManager *nam; ui->webView->page()->setNetworkAccessManager(nam); QUrl url; url.setHost("http://myhost.com"); url.setPath("/mypath.php"); QStrin

我正在为我当前的项目使用Qt4.7。我在一个对话框中有一个QWebView对象,我需要显示一个需要postdata的网页(它是搜索的结果)。到目前为止,我有以下几点:

QNetworkAccessManager *nam;
ui->webView->page()->setNetworkAccessManager(nam);
QUrl url;
url.setHost("http://myhost.com");
url.setPath("/mypath.php");
QString postdata("value1=x&value2=y");

QNetworkRequest request(url);
ui->webView->load(request, QNetworkAccessManager::PostOperation, postdata.toStdStdring().c_str());

我试着尽可能地关注文档,但它们非常缺乏对该功能的描述,我在网上很难找到关于它的其他内容。当我在浏览器中使用相同的主机和路径以及通过篡改请求确定的相同数据运行此操作时,我得到了正确的页面。但是,当我在应用程序中运行它时,webView是空白的。有人知道我可能做错了什么吗?我觉得这可能很简单,但就像我说的,我很难找到很多有用的东西。谢谢

您只是想在QWebView中加载www.myhost.com/mypath.php吗

只用

QUrl url("http://myhost.com/mypath.php");
ui->webView->load(url);

您似乎没有使用变量
postdata
,它的类型应该是
QByteArray
,如下所示:

QUrl url;
url.setHost("http://myhost.com");
url.setPath("/mypath.php");

QByteArray postdata;
postdata.append("value1=x");
postdata.append("&value2=y");

ui->webView->load(QNetworkRequest(url), QNetworkAccessManager::PostOperation, postdata);

因此,我能够通过使用
url.set*()
行并将它们替换为
url.setUrl(主机+路径)
来实现这一点。老实说,我不知道为什么会修复它,因为我认为它与之前的其他两个函数做的事情是一样的,但现在它似乎确实可以工作了。

这是它的一部分,但我也需要postdata。抱歉,在我复制东西时,这是一个输入错误,load()行在实际代码中使用postdata,我只是不小心把它抄错了。