C++QNetworkAccessManager(Qt)与openGL结合使用
C++ QNetworkAccessManager (Qt) in conjunction with openGL
我真的不喜欢C++(正如我之前的帖子所提到的),然而,如果我想发送HTTP GET请求来发送信息,我的朋友建议我使用QNetworkAccessManager。
我目前正在使用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;
}
相关文章:
- 多态性和功能结合
- OpenGL - 在抛出"__gnu_cxx::recursive_init_error"实例后终止调用?
- 了解 GLM- openGL 中的相机转换
- 如何在全屏模式下(在OpenGL中)使背景透明
- 为什么我不能使用 EGL 创建无头 OpenGl 上下文?
- OpenGL大的3D纹理(>2GB)非常慢
- OpenGl glm rotate
- C++atioglxx.pdb未加载错误glBufferData OpenGL
- OpenGL在启用深度测试时不会丢弃我的碎片
- OpenGL相机和相机空间转型的困惑
- OpenGL将纹理四边形渲染为(0,0)
- OpenGL 和 GLM 矩阵无法正确扩展,总是按比例缩小
- 发布旋转矩阵(openGL/glm)
- 将 OpenGL 兼容性配置文件与英特尔 HD GPU + Mesa 结合使用
- 将OpenGL与Visual Studio 2013学习版结合使用
- 将 gDEBugger 与 Qt OpenGL 应用程序结合使用
- C++QNetworkAccessManager(Qt)与openGL结合使用
- OpenGL与OpenCV结合的计算机视觉教程
- 如何将PBO与Qt OpenGL结合使用
- 将WGL与GLUT结合用于Windows 7 OpenGL下的形状.缺少GLUT INIT