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


前言

  该系列文章主要讲解自动更新程序相关,会从自动更新原理开始,到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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

梦醒梦起

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

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

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

打赏作者

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

抵扣说明:

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

余额充值