Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++;QNetworkAccessManager(Qt)与openGL结合使用 我确实是用C++来处理的(正如我以前的帖子所提到的),但是我的朋友建议我在QNETWraveAccess管理器上工作,如果我想发送一个HTTP GET请求来发送信息。_C++_Qt_Opengl Es_Qnetworkaccessmanager - Fatal编程技术网

C++;QNetworkAccessManager(Qt)与openGL结合使用 我确实是用C++来处理的(正如我以前的帖子所提到的),但是我的朋友建议我在QNETWraveAccess管理器上工作,如果我想发送一个HTTP 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”时,我的应用程序会生成,但永远不

我目前正在使用openGL es,希望执行以下两行代码来发送get请求:

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;
}