hello大皮——使用Qt访问Python Web服务 (使用Qt获取网页数据)

本文介绍了一种使用Qt的QNetworkAccessManager组件进行HTTP请求的方法。通过一个简单的示例程序,展示了如何实现GET请求来获取HTTP传输的图片,并通过信号与槽机制处理返回的数据。
部署运行你感兴趣的模型镜像

本次主要介绍一种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请求。

 

欢迎大家留言交流:

 

640?wx_fmt=png

 

 

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### 如何使用 Qt 进行 Python 开发 #### 安装必要的库 为了使用 Qt 进行 Python 开发,首先需要安装 PyQt 或 PySide 库。PyQtQt 的官方 Python 绑定,而 PySide 则是由社区维护的替代方案。可以通过 `pip` 工具轻松安装这些库[^1]。 ```bash pip install pyqt5 pyside2 ``` #### 创建基本的应用程序结构 一个简单的 Qt 应用程序通常由以下几个部分组成:导入模块、初始化应用实例、创建窗口并显示它以及进入事件循环。以下是基于 PyQt5 的基础代码示例: ```python from PyQt5 import QtWidgets, QtGui import sys app = QtWidgets.QApplication(sys.argv) # 初始化 QApplication 实例 window = QtWidgets.QWidget() # 创建 QWidget 对象作为主窗口 window.setWindowTitle('Hello Qt') # 设置窗口标题 window.resize(300, 200) # 调整窗口小 window.show() # 显示窗口 sys.exit(app.exec_()) # 启动应用程序的事件循环 ``` 这段代码展示了如何构建一个最简化的 GUI 程序。 #### 使用 Qt Designer 设计界面 除了手写代码外,还可以利用 Qt 提供的设计工具——Qt Designer 来绘制用户界面 (UI),从而减少手动编码的工作量。完成设计后,需将 `.ui` 文件转换成 Python 可读的形式。对于 PyQt 用户来说,可以借助 `pyuic5` 命令实现这一过程;而对于 PySide,则有对应的脚本可用[^2]。 ##### 将 .ui 文件转为 Python 类定义 假设有一个名为 `mainwindow.ui` 的文件,那么执行如下命令即可生成相应的 Python 模块: ```bash pyuic5 mainwindow.ui -o ui_mainwindow.py ``` 之后,在实际项目里加载该类并与逻辑层相结合就变得非常简单了。 #### 推荐使用的开发方式 考虑到项目的可扩展性和团队协作需求,建议采用 **Qt for Python 应用程序模板** 方法来进行型或者复杂度较高的软件工程实践。这种方法不仅提供了标准化目录布局还包含了诸多实用功能组件预设,极地方便了后续迭代更新操作[^3]。 #### 总结 通过上述介绍可以看出,无论是从零开始搭建小型实验性质的小型GUI应用亦或是着手于更庞的商业级解决方案建设工作当中去,选用合适的版本(如PyQt vs Pyside)、合理规划整体架构都是至关重要的环节之一。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值