● 本文示范demoGithub
demo为使用QT开发的一个软件示波器,功能为可以将串口接收到的数据实时渲染成曲线显示、
一、开发环境安装
注意:1)安装目录禁止出现中文
2)项目源代码存放路径禁止出现中文
3)打包exe应用时新建的文件夹路径也不应出现中文
如果你的电脑的用户名存在中文,应该修改用户名后再使用。
最新版QT需要在线安装,点击下方链接,选择下载开源版。获取Qt —— 立即下载
浏览器会自动下载.exe应用,点击启动,输入你的QT账号密码,点击下一步
这里默认是QT6.3,我们取消勾选,选择QT5.15.2。
主要原因是QT5与QT6版本差异较大,一些旧项目无法使用QT6编译成功,本文的Demo工程就是这样。如果读者新开始一个项目可以考虑直接安装QT6。
不用在此处纠结需要哪些组件,只需必备的编译器和编辑器安装后,其余看情况勾选。后续如果需要增删组件,可以看附录一操作修改。
等待中...
安装完成
新建一个项目
运行成功
现在已经完成了QT的安装和第一个程序创建,接下来我们打开软件示波器demo测试。
打开网盘中下载的工程,找到【.pro】文件,右键使用QT Creator打开。
4、点击左下角构建,然后点运行
5、可以看到编译成功的应用
使用串口调试助手向串口输入几个数据测试(串口调试助手在微软应用商店搜索下载)
二、打包.exe可执行程序
1、设置环境变量,目录为安装QT的的磁盘下,找到mingw81_32\bin文件夹(项目使用MinGW编译器)
2、去项目文件夹下找到打包后的release文件夹
找到.exe应用,此时的exe应用还无法使用,因为还没有对应的dll库文件。将其复制
桌面新建一个空文件夹,将刚才复制的exe应用粘贴进来
在此文件夹下shift+右键,选择在终端打开
输入指令windeployqt .\serial_port_plotter.exe
完成打包
点击启动即可
有些.dll库文件是多余的,删除并不会影响exe应用的使用,我们可以删除掉减少安装包体积。删减后如下图,现在可以发送给他人使用了。
附一:QT组件新增、删除或修改
有时候根据项目需要我们可能需要安装旧版的编译器才能成功构建项目,但现有的环境编译器版本在首次安装时就已经确定了。按照下述操作可以重新添加组件。
找到安装目录下的MaintenanceTool.exe
点击下一步,选择【添加或移除组件】
在这里选择QT旧版本的编译器即可
● 附二 离线安装
QT5.14.2版是QT最后一个离线安装版本,适合不想使用QT在线安装的用户。QT5.14.2安装包地址 Index of /archive/qt/5.14/5.14.2
如果你的电脑的用户名存在中文,应该修改用户名后再使用。
2、一路点击下一步,安装程序选择以下几个。其中MSVC和MinGW分别为配合微软VS插件的编译器和QT自带的编译器,必选一个。
Qt Charts为QT自带的二维图表库,如果用不到可以不选择。QT Creator为QT官方IDE,必选。其余自行了解。
● 附录3 一些QT .dll库的作用介绍
QtCore—QtCore模块是所有基于Qt的应用程序的基础,提供信号与槽的对象间通信机制、IO、事件和对象处理、多线程
QtGui—包含了开发图形用户界面应用程序所需的功能。使用其支持的各个平台的原生图形API。支持反锯齿、向量形变。支持ARGB顶层widget
QtMultimedia—提供了用于多媒体内容处理的QML类型集和C++类集。同时提供访问摄像头及音频功能的API。包含的Qt音频引擎支持三维音频回放及管理。
QtNetwork—提供了网络程序设计功能。支持通用协议,如HTTP、FTP和DNS,包括对异步HTTP 1.1的支持。与较低层的TCP/IP和UDP协议,如QTcpSocket、QTcpServer和QUdpSocket
QtOpenGL—提供在应用程序中使用OpenGL和OpenGL ES加入3D图形。在Windows平台上亦支持Direct3D
QtOpenVG-提供OpenVG绘图支持的一个插件
QtScript—包含完全集成的ECMA标准脚本引擎。提供信号与槽机制简化对象间通信和QtScript调试器。
QtScriptTools—额外的Qt Script组件
QtSql—将数据库集成至应用程序。支持所有主要的数据库驱动包括ODBC、MySQL、PSQL、SQLite、ibase、Oracle、Sybase、DB2。
QtSvg—支持SVG格式
QtWebKit—集成WebKit,提供了HTML浏览器引擎,便于在原生应用程序中嵌入网络内容和服务。
QtXml—提供了XML文档的阅读器和编写器、支持SAX和DOM。
QtXmlPatternsl—提供了XQuery和XPath引擎支持。
Phonon—集成Phonon,支持跨平台应用程序播放音频和视频内容。Qt5开始不支持Phonon。
Qt3Support—模块提供兼容Qt 3.х.х版本的程序库
QtDeclarative [34] - engine for declaratively building fluid user interfaces in QML
作业于Qt附带工具的模块
QtDesigner—提供扩充Qt Designer的类别。
QtUiTools
QtHelp—协助集成在线文件到应用程序中。
QtTest—提供单元测试框架和鼠标和键盘类比功能。集成Visual Studio和KDevelop。
下列模块用于Unix开发
QtDBus
下列模块用于Windows开发
QAxContainer
QAxServer所使用。