QT 简单实现自动更新程序(一) 效果展示 功能描述 ftp模式 http模式 配置文件更新 安装包更新

4 篇文章 1 订阅


前言

  该系列文章主要讲解自动更新程序相关,会从自动更新原理开始,到ftp与http不同下载方式,再到到如何实现配置文件更新与安装包更新,最后做成一个完整的软件。只是经验分享,描述内容并不绝对,如有误差欢迎指正。以ftp下载,配置文件更新模式为例,实现效果如下:
  更新模式常态
自动更新过程
自动更新结束
  静默更新模式
静默更新过程

静默更新结束


一、自动更新原理

  远端服务器存放待更新的内容,本地启动程序,程序启动前将到远端检查更新内容,需要更新则下载更新内容到本地,替换本地文件完成更新,启动程序。更新流程如下。

Created with Raphaël 2.3.0 开始 点击启动程序 更新程序启动 检查服务器是 否需要更新? 下载更新文件 替换更新文件 启动程序 结束 yes no

1、配置文件更新

1-1、更新步骤

  1. 加载本地配置文件获取获取保存的版本号。
  2. 每次启动程序,首先从服务器请求最新的版本信息文件(包括文件名,版本号,文件下载地址,文件类型)。
  3. 解析下载的文件获取服务器版本号,与本地版本号进行比较,如果高于本地,就下载文件。
  4. 更新文件(将下载的文件更换或添加到程序目录下)
  5. 更新本地配置文件

1-2、配置文件内容

<?xml version="1.0" encoding="utf-8"?>  
<filelist>  
 <file name="qdirect2dd.dll" dir="/plugins/platforms" version="1.1.0"/> 
 <file name="qminimald.dll" dir="/plugins/platforms" version="1.1.0"/> 
 <file name="qoffscreend.dll" dir="/plugins/platforms" version="1.1.0"/>
 <file name="qwindowsd.dll" dir="/plugins/platforms" version="1.1.0"/>
 <file name="Qt6Cored.dll" version="1.1.0"/> 	
 <file name="Qt6Guid.dll" version="1.1.0"/> 	
 <file name="Qt6Widgetsd.dll" version="1.1.0"/> 	

 <file name="MXYFlowChart.exe" version="1.1.1"/>
</filelist>  

2、安装包更新

1-1、更新步骤

  1. 加载本地配置文件获取获取保存的版本号。
  2. 每次启动程序,首先从服务器请求最新的版本信息文件(包括版本号,安装包下载地址,程序名称)。
  3. 解析下载的文件获取服务器版本号,与本地版本号进行比较,如果高于本地,就下载压缩包。
  4. 解压缩程序压缩包
  5. 更新本地版本号,启动安装包程序,退出当前自动更新程序

3、更新程序配置文件内容

[software]
style=2
downloadmodel=1
downloadtype=2

[download]
software_name=MXYFlowChart
url=ftp://192.168.8.4:21/download/MXYFlowChart
local_path=E:/Program code/qt/updatatest/
install_package_path = E:/Program code/qt/updatatest/

[ftpserver]
username=lenovo
password=123

[windowstyle]
title=萌学园更新程序
icon=:/update/Resource/update.png
version=V1.0.1

二、ftp与http模式介绍

  http模式使用QT自带的QNetworkAccessManager类,因为使用qt6.4开发,qt不支持ftp模式,所以ftp模式使用第三方库ftplib进行二次开发。

总结

本文只做效果展示与基本实现思路,后续会继续更新具体实现。
本文只是经验分享,描述内容并不绝对,如有误差欢迎指正。

如果此文帮助到你( •̀ ω •́ )✧,动动小手点个赞可好O(∩_∩)O。

原创文章,转载请标明本文出处。
  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
使用Qt实现软件自动更新FTP,可以按照以下步骤进行: 1. 创建一个Qt应用程序项目,并添加FTP相关的类库,例如Qt的Network模块。 2. 在应用程序中,创建一个FTP连接对象,并设置FTP服务器的地址、端口号、用户名和密码等参数。 3. 使用FTP连接对象中的connectToHost()函数连接FTP服务器。 4. 在连接成功后,使用FTP连接对象中的get()函数下载需要更新的文件,可以根据需要指定下载的文件路径和保存路径。 5. 下载完成后,可以使用Qt提供的文件操作函数,如QFile、QDir,来处理下载的文件,例如将其复制到指定的目录,覆盖原有的文件。 6. 过程中可以添加相应的错误处理代码,例如处理网络连接失败、下载文件失败等情况。 7. 定时检测软件的最新版本,可以使用Qt提供的QTimer类来定时触发软件更新。 8. 在应用程序启动时,检查软件的当前版本号和最新版本号是否一致,如果不一致则触发更新流程。 9. 可以根据需求,创建一个界面来展示更新的进度和结果,例如使用Qt的GUI模块中的QProgressDialog来显示更新进度。 10. 最后,根据需要,可以添加一些其他的功能,例如自动解压缩下载的压缩包、比较文件的MD5校验和等。 总之,使用Qt实现软件自动更新FTP,需要使用Qt的网络模块来连接FTP服务器,下载需要更新的文件,并使用Qt的文件操作函数进行文件处理。同时,需要注意错误处理和版本检测等功能实现

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦醒梦起

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值