C++;QNetworkAccessManager(Qt)与openGL结合使用 我确实是用C++来处理的(正如我以前的帖子所提到的),但是我的朋友建议我在QNETWraveAccess管理器上工作,如果我想发送一个HTTP GET请求来发送信息。
我目前正在使用openGL es,希望执行以下两行代码来发送get请求:C++;QNetworkAccessManager(Qt)与openGL结合使用 我确实是用C++来处理的(正如我以前的帖子所提到的),但是我的朋友建议我在QNETWraveAccess管理器上工作,如果我想发送一个HTTP GET请求来发送信息。,c++,qt,opengl-es,qnetworkaccessmanager,C++,Qt,Opengl Es,Qnetworkaccessmanager,我目前正在使用openGL es,希望执行以下两行代码来发送get请求: QNetworkAccessManager* netMan = new QNetworkAccessManager(this); netMan->get(QNetworkRequest(QUrl("something/?userID=1"))); 但是,它不喜欢“this”,因为它位于main()方法中,并且不引用QObject(我猜是QApplication)。当我去掉“this”时,我的应用程序会生成,但永远不
QNetworkAccessManager* netMan = new QNetworkAccessManager(this);
netMan->get(QNetworkRequest(QUrl("something/?userID=1")));
但是,它不喜欢“this”,因为它位于main()方法中,并且不引用QObject(我猜是QApplication)。当我去掉“this”时,我的应用程序会生成,但永远不会加载(我在顶部放了一个“printf(1)”,它甚至不会运行)
关于如何解决这个问题,有什么建议或替代方案吗?提前谢谢
-James仅需要使用
QNetworkAccessManager
构造函数中的参数来指定基于QObject
的父对象,该父对象将负责稍后清理(删除)对象,如果您计划自己调用delete
,则不需要该参数
我不太清楚“从不加载”指的是什么,也不清楚您将printf
放在哪里,但为了得到任何东西,您需要实际保留调用get()
返回的QNetworkReply
指针
要从中获取任何信息,需要运行一个事件循环。如果应用程序仅为控制台(无GUI),则可以使用QCoreApplication
对象
请尝试以下代码:
#include <QCoreApplication>
#include <QNetworkAccessManager>
#include <QUrl>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QNetworkAccessManager *netMan = new QNetworkAccessManager();
QNetworkReply *reply = netMan->get(QNetworkRequest(QUrl("http://google.com")));
a.connect(reply, SIGNAL(finished()), SLOT(quit()));
a.exec();
qDebug() << reply->readAll();
delete netMan;
}
#包括
#包括
#包括
#包括
#包括
#包括
int main(int argc,char*argv[])
{
qcorea应用程序(argc、argv);
QNetworkAccessManager*netMan=新的QNetworkAccessManager();
QNetworkReply*reply=netMan->get(QNetworkRequest(QUrl)http://google.com")));
a、 连接(应答、信号(完成())、插槽(退出());
a、 exec();
qDebug()readAll();
删除netMan;
}
只需指定基于QObject
的父对象,该父对象将负责稍后清理(删除)对象,如果您计划自己调用delete
,则无需使用QNetworkAccessManager
构造函数中的参数
我不太清楚“从不加载”指的是什么,也不清楚您将printf
放在哪里,但为了得到任何东西,您需要实际保留调用get()
返回的QNetworkReply
指针
要从中获取任何信息,需要运行一个事件循环。如果应用程序仅为控制台(无GUI),则可以使用QCoreApplication
对象
请尝试以下代码:
#include <QCoreApplication>
#include <QNetworkAccessManager>
#include <QUrl>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QNetworkAccessManager *netMan = new QNetworkAccessManager();
QNetworkReply *reply = netMan->get(QNetworkRequest(QUrl("http://google.com")));
a.connect(reply, SIGNAL(finished()), SLOT(quit()));
a.exec();
qDebug() << reply->readAll();
delete netMan;
}
#包括
#包括
#包括
#包括
#包括
#包括
int main(int argc,char*argv[])
{
qcorea应用程序(argc、argv);
QNetworkAccessManager*netMan=新的QNetworkAccessManager();
QNetworkReply*reply=netMan->get(QNetworkRequest(QUrl)http://google.com")));
a、 连接(应答、信号(完成())、插槽(退出());
a、 exec();
qDebug()readAll();
删除netMan;
}