QT上位机开发(软件的发布和部署)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        我们在读书的时候,如果程序写好了,这个时候一般直接把exe拷贝给老师就可以了。这就是最原始的软件发布。但是,这个规则套在qt和商业上位机开发上,就显得有点不合时宜了。原因有两点,第一,我们开发的只是exe文件,它本身还要qt各个dll动态库的帮忙才能运行起来;第二,一个上位机软件不仅仅是程序本身,还依赖于配置文件、美工文件、语言包、数据库、数据库配置文件等很多内容,并不仅仅是拷贝一个exe那么简单。

        今天借着学习qt的机会,我们来看下如何发布qt平台的软件。

1、利用windeployqt.exe

        网上关于qt发布的内容很多,但是怎么找到qt依赖的动态库文件,其实一个程序就可以了,那就是windeployqt.exe。首先,我们在qt安装目录下面找到这个程序,接着用这个程序就可以找到exe对应的依赖库文件了。

C:\Qt\Qt5.12.5\5.12.5\msvc2017\bin\windeployqt.exe QtWidgetsApplication.exe

2、拷贝好配置文件

        如果大家有印象的话,之前因为调试,我们进行配置文件加载、sqlite数据库加载的时候,这些文件都是放在和cpp同名的目录下。现在因为需要把这些软件部署到客户的电脑上面,所以就需要把这些文件copy到和exe同名的目录下,这样程序才能正确加载。

3、准备好qss文件、图片文件

        之前为了美化,我们还学习qss文件。所以关于qss脚本部分的内容、图片部分的内容,也需要拷贝到exe同级目录下,不然辛辛苦苦做好的美化包就发挥不了作用了。

4、语言包

        很多时候,我们开发的上位机软件不仅仅需要满足国内市场,还要满足国外市场,甚至是多语言的国家和地区,比如说东南亚地区,比如说欧洲地区等等。这个时候,我们就要学会开发多语言包,并且根据客户的选择灵活加载不同的语言包,然后重启。目前来说,最最基础的中文和英文还是需要的,因为保不齐哪天就有国外的订单飘过来。

5、第三方库

        很多时候,我们的程序还需要依赖第三方动态链接库文件。就拿qt上位机来说,就可能会用到boost、opencv、pcl这些常用库。所以,我们还需要记录好这些第三方库的版本。这样发生问题之后,才可能进行回溯和改进。

6、数据库和sql文件

        对于业务比较大的上位机来说,数据库是必不可少的。有条件的话,可以把数据库单独放在一个独立的服务器上面。实在没有办法了,才考虑把数据库和上位机软件安装在一起。这中间odbc安装、数据库版本的选择、sql文件的导入,最好都以文档的形式记录下来,保证所有的人按照这个文档,都可以顺利实现数据库的安装和导入。

7、日志文件目录

        剩下来,最最重要的部分,就是日志文件的目录设置。软件在运行的过程当中,出问题是正常的。我们的目标应该是少出问题,或者说出了问题,现场运维的朋友也可以第一时间来解决。即使现场的朋友没有办法解决,也可以迅速拿到log文件,把这些文件发送给开发商来解决,这都是常规的处理办法和措施。所以,等软件部署完毕之后,一定要检查一下,电脑上的日志目录是否设置正确。如果无法使用todesk之类的远程工具来处理,log和录屏似乎是唯二的故障解决办法了,不过效率也会低一点。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/326187.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

“核弹级“攻击队视角下的监管痛点解决方案

痛点分析及解决方案 一、辖区企业资产分散且不透明 - 传统的监管体系中,政府监管单位往往面临着辖区企业资产分散且不透明的问题。 - 企业无法梳理自身资产,上报的资产台账无法涵盖全部自身资产 - 监管单位精力有限,无法保证辖区企业资产台账…

解决jmeter测试计划无法保存、另存为的问题

问题: 在保存测试计划时直接保存在C:\Windows\System32, 导致执行时报错Couldn’t save test plan to file:C:\Windows\System32 解决方案: 将路径改为 options--------Look And Feel-------windows

Express框架使用全流程

1.目的和使用场景 对于像我这样不常使用 Node.js 进行开发的人来说,每次开始一个新项目都意味着从头开始设置环境,这个过程相当繁琐。因此,我决定自己构建一个开箱即用的项目脚手架。我的目标是创建一个简单易用的基础框架,能让我…

NET Core发布 HTTP Error 500.31 - Failed to load ASP.NET Core runtime

记录一下踩过的坑: 首先,不论是500.31还是500.30 ,首先确保安装了三个文件 1.NET Core RunTime 2.NET SDK 3.NET Hosting 其次,确保三个文件的版本一致,如下: 要装就统一装同一个大版本,不要东…

51单片机学习总结(自学)

1、模块化编程 c语言模块化编程实现思路设计代码 具体的程序实现代码如下所示 1:程序的头文件 2:程序的函数文件 3:程序的主文件控制函数的实现 持续更新中......

训练YOLOS-S

文章目录 1 数据处理2 配置训练参数3 可能会遇到的报错 1 数据处理 修改类别数:在models/detector.py中定位到def build(args):,将num_classes进行修改,改为最大的类别id1。我有4个类别,类别id是从0~3,因此max_id3&am…

怎样才能找到合适的产品说明书模板 方法献上

制作一份专业而吸引人的产品手册对于企业来说至关重要。然而,对于许多企业和个人而言,制作产品手册可能是一个挑战,因为需要一定的设计和排版能力。为了帮助大家更轻松地制作出优质的产品手册,下面将向大家推荐三款优秀的产品手册…

如何提高客户消息的快速准确回复能力?

无论是企业还是个人,能够快速而准确地回复客户消息是非常重要的,这不仅可以增强客户对你的信任度,还能促进客户的满意度。 那么,我们该如何提高自己的回复能力呢?接着往下看,你就知道啦! 1、学…

华为埋头造车,躺赚的却是黄牛?

文 | AUTO芯球 作者 | 雷歌 华为和赛力斯正在重庆哼哧a哼哧建厂造车,黄牛却在网上倒卖订单躺着赚钱。 前两天雷歌刚去试驾了问界M9,现场一车难求。 今天回来一看,好家伙,咸鱼上,黄牛们大量倒卖M9的大定订单&#x…

瑞_Java开发手册_(七)设计规约

文章目录 设计规约的意义设计规约 🙊前言:本文章为瑞_系列专栏之《Java开发手册》的设计规约篇。由于博主是从阿里的《Java开发手册》学习到Java的编程规约,所以本系列专栏主要以这本书进行讲解和拓展,有需要的小伙伴可以点击链接…

大物②练习题解

1.【单选题】关于磁场中磁通量,下面说法正确的是( D) A、穿过闭合曲面的总磁通量不一定为零 B、磁感线从闭合曲面内穿出,磁通量为负 C、磁感线从闭合曲面内穿入,磁通量为正D、穿过闭合曲面的总磁通量一定为零 磁感线从…

WebGL在家居设计领域中的应用

WebGL(Web Graphics Library)是一种用于在Web浏览器中进行3D图形渲染的JavaScript API。在家居设计方面,WebGL可以提供一些强大的应用,使用户能够交互式地浏览和体验设计方案。以下是一些家居设计领域中WebGL的应用,希…

Mac安装MySQL

环境 电脑: macOS Monterey 12.7.2 MacBook Pro( Retina, 13-inch, Early 2015) 处理器: 2.7GHz 双核 Inter Core i5 MySQL 的安装版本: 8.2.0 最近有更新系统, 重新配置了电脑, 因此, 之前安装的 MySQL 也都删除了, 这次安装经历有点坎坷, 记录下来, 希望可以帮助到需要的小伙…

Jmeter接口测试实战篇:10分钟学会Jmeter的用法

一提到接口测试,通常大家会有这样的疑问:前端测试不是已经覆盖到各种业务逻辑了吗?为什么还要做接口测试,接口测试和前端测试是不是重复了?对于这个问题,可以从下面几个方面来解释: 什么是接口…

PyCharm中配置安装PyQt5、QtDesigner

PyCharm中配置安装PyQt5 使用 pip install PyQt5 命令安装。 安装pyqt5-tools:pip install pyqt5-tools 安装PyQt5Designer:pip install PyQt5Designer 上述三个都安装好之后,输入 pip list 查看一下 有如下内容就安装成功啦!…

用el-image-viewer实现全局预览图片

背景 在后台管理系统中,一些预览图片的场景,通常都是使用 el-image-viewer 去实现,但是如果多个地方都需要预览图片,又要重复的去写 el-image-viewer 以及一些重复的和预览相关的代码。 可以把预览图片的组件放在根文件&#x…

java基础 - 05 Vector

Vector 学过C的同学都知道,Vector也在C中存在,他可以说是两种编程语言中都存在的数据结构,但是值得我们注意的是,Vector在java中和在C中是存在差别的,在Java中,Vector是一个数组。并且他是动态的&#xff…

记一次 JMeter 压测 HTTPS 性能问题

问题背景 在使用 JMeter 压测时,发现同一后端服务,在单机 500 并发下,HTTP 和 HTTPS 协议压测 RT 差距非常大。同时观测后端服务各监控指标水位都很低,因此怀疑性能瓶颈在 JMeter 施压客户端。 问题分析 切入点:垃圾…

vue3.2二次封装antd vue 中的Table组件,原有参数属性不变

vue3.2中的<script setup>语法 在项目中多处使用到表格组件,所以进行了一个基础的封装,主要是通过antd vue 中表格的slots配置项,通过配合插槽来进行封装自定义表格; 这次主要的一个功能是编辑之后变成input框 修改了之后变成完成发送请求重新渲染表格&#xff1a; 子…

【Android Gradle 插件】Android 依赖管理 ① ( 依赖库匹配 | 依赖库查找顺序及路径 | Gradle 资源库 )

一、依赖库匹配 依赖库匹配 : 依赖库由三部分组成 依赖库分组依赖库名称依赖库版本号 只有三者都对上 , 依赖库才能匹配上 , 如 dependencies {implementation androidx.appcompat:appcompat:1.3.1 }依赖库分组为 androidx.appcompat , 依赖库名称为 appcompat , 依赖库版本…