本次主要介绍一种Qt提供的访问Web URL的方法——QNetworkAccessManager。
平台:ubuntu14.04 Qt Creator 3.5.1 python2.7
简单说下应用场景:
一般的智能相机在传输图片时一般使用FTP协议,后来的相机也使用HTTP传输图片,在Qt中获取HTTP传输的图片则可以使用QNetworkAccessManager。
程序也比较少,直接贴代码:
#include "widget.h"#include "ui_widget.h"
Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget){ ui->setupUi(this);
//请求python服务数据 mp_clsManager = new QNetworkAccessManager(this); connect(mp_clsManager,SIGNAL(finished(QNetworkReply*)), this,SLOT(slot_replyFinished(QNetworkReply*)));}
Widget::~Widget(){ delete ui;}
void Widget::slot_replyFinished(QNetworkReply *reply){ //在槽中接收python服务信息 if(reply->error() == QNetworkReply::NoError) { QString str(reply->readAll());
qDebug() << "str is :" << str;
}}
void Widget::on_pbn_sendMsg_clicked(){ QString postRequest = QString("http://%1:8080/hello?str=你好,大皮") .arg("localhost"); mp_clsManager->get(QNetworkRequest(QUrl(postRequest)));}
连接信号和槽,在槽中get请求的的内容。最开始用的时候是Qt如何获取网页数据,也就是对应的HTTP协议。
点击Sendmsg按钮,post请求。