Qt 在线升级功能

article/2025/8/29 19:49:40

   开源QSimpleUpdater是一个Qt在线升级模块 ,但是QSimpleUpdater 由于使用了很久以前的版本,并且近几年没有维护,因此其内部好多Qt的widget文件,这些QWidget与项目的整体风格不符合,说白了就是很丑,现在用QML进行改造,只需要俩个QML文件即可。

一,原型图

二,实际效果

三,关键代码

1,这里用QQuickWidget 通过setSource的方式加载QML文件

2,通过 setProperty 来设置qml中的属性。 通过findChild 并在qml中定义objectName 的方式来获取qml中的控件,比如按钮。

3,主要qml文件

import QtQuick 2.0
import QtQuick.Controls 2.0
import QtQuick.Controls.Material 2.0Item {id:rootproperty int space: 10property string tipInformation: "没有可用升级"property string verInformation: ""property string okBtnText: "继续"property string cancleBtnText: "确定"property real progressValue: 0property bool okBtnEnable : falseproperty bool cancleBtnEnable : trueProgressBar{id:progressBaranchors.top: parent.topanchors.left: parent.leftanchors.right: parent.rightanchors.leftMargin: spaceanchors.rightMargin: spaceheight: 30from: 0to:100value: progressValueonValueChanged: {//console.log("valueChanged:"+progressValue)if(value>0&&value<100)okBtn.enabled=falseelseokBtn.enabled=true}}TextEdit{id:textEditanchors.left:parent.leftanchors.right: parent.rightanchors.top: progressBar.bottomanchors.leftMargin: spaceanchors.rightMargin: spacereadOnly:truetext: verInformation}Button{id:cancleBtnobjectName:"quitBtn"anchors.right: parent.rightanchors.bottom: parent.bottomanchors.bottomMargin:  spaceanchors.rightMargin: spacetext: cancleBtnTextenabled: cancleBtnEnable}Button{id:okBtnobjectName:"continueBtn"anchors.bottomMargin: spaceanchors.right: cancleBtn.leftanchors.bottom: parent.bottomanchors.rightMargin: spacetext: okBtnTextenabled: okBtnEnable}Label{id:informationLabelanchors.leftMargin: spaceanchors.bottom: cancleBtn.topanchors.bottomMargin: spaceanchors.left: parent.lefttext:tipInformation}Label{id:tipLabelanchors.leftMargin: spaceanchors.bottom: informationLabel.topanchors.bottomMargin: spaceanchors.left: parent.lefttext: qsTr("提示")}}
import QtQuick 2.0
import QtQuick.Controls 2.0
import QtQuick.Controls.Material 2.0Item {id:rootproperty int space: 10Label{id:tipLabelanchors.leftMargin: spaceanchors.left: parent.leftanchors.top: parent.topanchors.topMargin: space*2text: qsTr("更新还未完成,确定要退出么?")}Button{id:cancleBtnobjectName:"quitBtn"anchors.right: parent.rightanchors.bottom: parent.bottomanchors.bottomMargin:  spaceanchors.rightMargin: spacetext: "取消"}Button{id:okBtnobjectName:"continueBtn"anchors.bottomMargin: spaceanchors.right: cancleBtn.leftanchors.bottom: parent.bottomanchors.rightMargin: spacetext: "确定"}
}

 


http://chatgpt.dhexx.cn/article/lF13LufW.shtml

相关文章

stm32-IAP(在线升级程序)

第一章 背景知识 什么是IAP&#xff1f; IAP的知识网上的各种资料也说的比较明白&#xff0c;在此简单介绍一下。IAP&#xff08; In Application Programming&#xff09;即在线应用编程&#xff0c;也就是用户可以使用自己的程序对单片机的User Flash的某一区域&#xff08…

【Android】轻松实现 APK 在线升级

【Android】轻松实现 APK 在线升级 APK 在线升级 APK 在线升级几乎是所有程序必备的功能。 在线升级功能能解决已有的问题并提供更丰富的新功能。 基本的流程是&#xff1a; 检测到新版本信息弹出升级提示窗口点击 No 不进行升级&#xff0c;完毕&#xff01;点击 Yes 后台…

车载Linux固件升级,一种车载系统固件在线升级方法与流程

本发明涉及汽车系统升级技术领域,尤其涉及一种车载系统固件在线升级方法。 背景技术: 随着汽车智能化、网联化的发展趋势,车联网的技术进步带来汽车软件系统的复杂度不断增加,升级迭代的速度越来越快,软件的不稳定性风险不可避免。统计数据显示,当前市场一半以上的汽车召…

51单片机IAP在线升级

51单片机IAP在线升级 爱矽半导体E85F3325单片机IAP在线升级教程&#xff0c;此处可查看更新及demo下载 文章目录 前言一、ROM资源二、KEIL有关知识1.BL51连接器&#xff1a;2.LX51连接器&#xff1a; 三、Keil其他相关项说明&#xff1a;四、MCU启动文件说明&#xff1a;五、例…

在线升级版本:ESXI6.5升级7.0

将一台使用ESXI6.7的虚升级条件 1、首先确保硬件是否能升级到7.0版本&#xff0c;注意&#xff1a;物理网卡驱动为e1000e不能升级&#xff0c;如果是igbn&#xff0c;则可以顺利升级。拟机升级到了7.0版本。 升级方法 升级方法有补丁升级、在线升级和U盘升级三种方式&#xff0…

Ubuntu 如何 在线升级系统

Ubuntu 如何升级更新系统 有也常用 Kali Linux 的小伙伴会很熟悉&#xff0c;在Kali中我们只需要使用apt/apt-get包管理器执行如下命令即可&#xff1a; sudo apt update && apt upgrade -y一般执行结束就已完成Kali系统的更新或者再加上: sudo apt dist-upgrade -y&am…

跨平台应用开发进阶(三): uni-app 实现资源在线升级/热更新

文章目录 一、前言1.1 Android升级检测机制 二、wgt 资源升级包升级2.1 修改版本号2.2 发行2.3 安装资源升级包2.3.1 代码示例2.3.2 小结 三、整包升级3.1 客户端实现3.2 数据表实现3.3 服务端实现3.4 发版配置3.5 注意事项 四、Uni-app 版本升级中心4.1 升级中心 uni-upgrade-…

STM32 IAP 在线升级原理全解析

点击左上角的“关注”&#xff0c;定期更新 STM32 最新资讯&#xff0c;总有你想要的信息&#xff01; STM32 IAP 在线升级原理全解析 1. 什么是 IAP&#xff1f; IAP&#xff08;In-Application Programming&#xff09;是用户自己的程序在运行过程中对 User Flash 部分的区域…

ESP8266实现在线升级OTA

今天总结一下我实现ESP8266实现在线升级&#xff08;OTA&#xff09;的经验 关于理论介绍我这里不多讲&#xff0c;大家可以参考以下文章&#xff1a; 1.一个网友总结的经验&#xff08;我这篇文章主要也是对该文章做进一步补充&#xff09;&#xff1a;https://www.cnblogs.c…

stm32在线升级方案

目录 下载固件流程&#xff1a; Bootloader程序设计流程 普通工程改为APP工程的步骤 背景&#xff1a;当嵌入式软件需要固件升级时&#xff0c;有时需要拆卸设备&#xff0c;较为麻烦&#xff0c;为方便升级&#xff0c;提供远程升级的功能&#xff0c;可通过网络或其他通讯…

串口在线升级步骤

串口在线升级步骤 一、查看工程文件的Config.h 二、确定本地地址和目标地址 三、打开在线升级工具 四、配置串口参数 串口配置可以波查询代码与PC通讯的UART设置的参数。 五、填写本机地址和目标地址 本机地址为0xf3 243 主板目标地址为0xf5 245 PMT板目标地址为0x13 19 …

mariadb数据库在线升级版本

mariadb----在线版本升级 我之前的数据库版本号是5.5 一&#xff1a;备份数据库和数据库配置 mysqldump -u root -p --all-databases > /home/mydb.sql mv /etc/my.cnf /etc/my.cnf.bak 二&#xff1a;添加mariadb yum库 vim /etc/yum.repos.d/MariaDB.repo [mariadb] na…

FPGA远程固件在线升级

FPGA远程固件在线升级 1.摘要 对最近做的FPGA远程更新/在线升级做一个总结。一般在代码开发阶段&#xff0c;我们使用JTAG烧写代码&#xff0c;但当产品投入到实际使用过程中&#xff0c;难以再用JTAG进行固件更新。所以需要开发远程/在线更新的功能&#xff0c;即使用产品自…

固件在线升级流程

从事硬件开发&#xff0c;为了方便维护&#xff0c;免不了对模块进行固件升级&#xff0c;所以对于固件升级&#xff0c;简单整理了一下完整的在线升级的实现思路&#xff0c;该思路适用于所有带通讯总线的模块。 需要注意的是&#xff0c;需要额外的上位机配合。 下位机在线…

php 在线升级

php 在线升级 功能 目前已修改为通用解决方案 点击下方链接下载 此为最新优化过的版本 之后的贴图 说明 仅用来做思路参考 我就不再修改了 下面是思路解析思路一思路二升级程序服务器检测版本至此整个升级程序已经结束 感谢大家参考有任何问题都可以直接联系我咨询 一定不吝赐教…

软件在线升级系统设计

需求描述 一直用Qt开发PC版本的程序&#xff0c;常用的方法都是打包发布。目前开发的程序比较复杂&#xff0c;涉及到上百个独立的进程以及4000多个相关文件&#xff0c;采用原来的打包发布就变得很麻烦&#xff0c;第一改动比较频繁&#xff0c;打包次数过多&#xff1b;第二…

Nginx在线升级

1、查看当前nginx版本&#xff0c;nginx -v&#xff08;小写v&#xff09; 2、下载最新版本nginx包&#xff0c;nginx-1.23.1.tar.gz 3、解压tar -zxvf nginx-1.23.1.tar.gz 4、进入解压目录cd nginx-1.23.1.tar.gz 5、查看nginx当前配置&#xff0c;nginx -V注意这里是大写…

在线升级:OTA升级的原理和实现方式

目录 1、OTA 在线升级 2、实现方式 3、操作方式 3.1、后台式升级 3.2、非后台式式更新 4、STM32 的在线升级 4.1、划分 Flash 区域 4.2、实操1 - Flash空间地址的划分 4.3、实操2 - 设置工程 4.4、实操3 - 接收固件更新包 4.5、实操4 - 拷贝程序至Flash 4.6、实操5 - 跳转至 Ap…

halcon 彩色图转灰度图

read_image (Image, jiao1.bmp) //读取图像 get_image_size (Image, Width, Height) //获取宽高 dev_close_window () //关闭图形窗口 rgb1_to_gray (Image, GrayImage) //彩色图转灰度图 dev_open_window (0, 0, Width, Height, black, WindowHandle) //打开图形窗口 d…

Python中使用PIL快速实现灰度图

效果 原图 效果图 实现 新建文件夹grayImage&#xff0c;在此文件夹下新建gray.py from PIL import Image imgImage.open(1111.jpg) imgimg.convert(L) img.save(灰度图.jpg) 其中1111.jpg是原图&#xff0c;将其放在同目录下。 运行即可。 源码以及资源下载 https://do…