一、前言
这篇文章介绍QT的工程如何使用。 目前设计的很多的物联网项目的APP都是采用Qt开发的。很多同学对Qt比较陌生,不知道如何使用QT。
这篇文章就来解决这个问题。
二、QT下载
我这里采用的Qt版本是5.12.6,目前开发的物联网项目的上位机APP都是采用这个版本的QT开发的。
目前官网上是无法下载(国内的IP地址被封了,科学上网才可以),我这将QT的安装包已经下载下来了,放在了网盘里,大家可以去网盘下载。
网盘地址: https://ccnr8sukk85n.feishu.cn/wiki/QjY8weDYHibqRYkFP2qcA9aGnvb?from=from_copylink
(在软件工具目录
下QT安装包
目录下)
这是 QT5.12.6的官方下载地址:https://download.qt.io/archive/qt/5.12/5.12.6
你也可以从官方下载地址下载(需要解决上外网的问题)。
打开下载链接后选择下面的版本进行下载:
三、QT安装
QT安装的路径需要设置在纯英文路径
下。一般默认的C盘路径就可以。 如果你要换其他安装目录,也要保证路径中没有中文字符。
软件安装时断网
安装,否则会提示输入账户(当然,你注册一个账号登录也是可以的)。
双击安装包就可以进行安装。
**选择编译器: (一定要看清楚了) ** (如果你需要其他的编译器,可自行选择)
四、新建QT工程
这个章节是教大家测试一下安装之后的QT环境是否正常。
4.1 打开QT软件
安装QT之后,可以在Qt的安装目录下找到你的QT程序,你可以手动创建一个快捷方式放在桌面。
你可以根据你的QT安装目录去寻找你的QT软件。
比如 我的路径如下。
C:QtQt5.12.6ToolsQtCreatorbinqtcreator.exe
双击qtcreator.exe
就可以打开QT软件。
4.2 新建工程
【1】新建工程
【2】设置项目的名称。
【3】选择编译系统
【4】选择默认继承的类
【5】选择编译器,如果你要编译Android的,可以选Android(如下)
【6】点击完成
【7】工程创建完成
4.3 切换编译器
在左下角是可以切换编译器的。 可以选择用什么样的编译器编译程序。
目前新建工程的时候选择了2种编译器。 一种是mingw32
这个编译Windows下运行的程序。 一种是Android
编译器,可以生成Android
手机APP。
不过要注意:Android的编译器需要配置一些环境才可以正常使用,这个大家可以网上找找教程配置一下就行了。
也可以看这篇文章(这篇是付费的)
https://blog.csdn.net/xiaolong1126626497/article/details/117254453
windows的编译器就没有这么麻烦,安装好Qt就可以编译使用。
下面我这里就选择的 mingw32
这个编译器,编译Windows下运行的程序。
4.4 编译测试功能
创建完毕之后,编译测试一下功能是否OK。
点击左下角的绿色三角形按钮
。
正常运行就可以看到弹出一个白色的框框。这就表示工程环境没有问题了。 接下来就可以放心的设计界面了。
到此,如果正常,说明你的环境已经安装好了。
五、如何打开现有的工程?
如果你得到了一个已经开发好的Qt工程,你想打开它编译使用,如何操作?
比如,你得到的工程是这样的。 你需要在你电脑上创建一个纯英文的目录,比如:D:/QtProject
,再将这个工程复制
过去。
复制过去之后,打开文件夹,可以看到后缀.pro
的这个文件。 双击它就可以打开工程。
当然也有意外情况,如何你安装了QT但是这里的图标没有自动识别为QT工程,怎么办?
你可以,先打开Qt软件,软件在QT软件里选择打开工程,找到你的工程路径,选择工程打开也可以的。
第一次打开工程需要你选择编译器。 如果你要编译器Android 和 Windows的版本,就按下面的截图选择编译器。
进来之后,如果要编译Windows版本的,就按下面的截图设置配置。就可以编译运行了。
启动之后的效果。
如果你想编译Android版本的。 那么切换编译器就可以了。
点击 锤子
按钮构建。
构建完成之后,在编译输出
页面,可以看到生成的Android的安装包路径位置。
然后通过QQ 或者 微信 其他手段发给你的手机就可以安装了。
QQ 或 微信 默认不识别安装包的。 你需要选择浏览器
打开,就可以识别安装包,然后安装了。
六、更新Token失败如何解决?
如果你的项目是物联网项目,需要连接华为云IOT这种物联网服务器获取数据。 代码就会有使用HTTPS
请求。
用到了HTTPS
就需要SSL
的库。 你默认安装的QT是不带这些库的。
如果没有这些库,你点击界面上的的更新token
就会报错。
在应用程序输出
栏目里也会提示警告。
比如: qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization faile
这样的提示。
如何解决呢?
在你的项目资料包目录下,会有一个windows的APP文件目录
,进去可以看到两个文件。
libcrypto-1_1.dll
和 libssl-1_1.dll
。
将这两个文件拷贝到你的Qt的安装目录下C:QtQt5.12.65.12.6mingw73_32bin
就可以了。
然后再运行程序,测试更新Token就正常的。
七、华为云的工程需要改哪里?
如果你的项目是华为云IOT的工程,运行了Qt之后需要替换你的华为云账号。
前提条件: 你的华为云是标准版
、你是严格按照设计文档做的步骤
、你的项目编号是大于172
。
那么只需要,修改widget.h
文件的3个参数即可。
如果不是呢?
看这个文档的第五章:https://blog.csdn.net/xiaolong1126626497/article/details/134781708
八、Qt是什么?
Qt介绍与应用
1. Qt是什么?
Qt(读作“cute”)是一个跨平台的C++应用开发框架,它提供了丰富的API和工具,用于开发图形界面(GUI)**和**非图形界面(CLI、后台服务)**的应用程序。Qt 由 Qt Group(原Digia公司)维护,支持**Windows、Linux、macOS、Android、iOS等多个平台,并且支持嵌入式开发,如嵌入式Linux、RTOS等。
2. Qt的核心特点
- 跨平台性
- 代码一次编写,可在多个平台(Windows、Linux、macOS、Android、iOS、嵌入式Linux)上运行,减少重复开发工作。
- 模块化设计
- 强大的GUI开发能力
- Qt 提供了Qt Widgets(传统界面组件)和Qt Quick(QML + C++)(基于QML的现代UI开发)两种方式,可用于开发桌面软件、移动端App、嵌入式设备UI等。
- 信号与槽(Signal & Slot)机制
- Qt 采用信号与槽机制,可以实现高效的事件驱动编程,使界面组件和后台逻辑的交互更加方便。
- 丰富的工具支持
- Qt Creator:官方IDE,支持代码编辑、调试、UI设计等功能。
- Qt Designer:用于可视化设计UI界面。
- qmake & CMake:支持项目构建和管理。
- Qt Linguist:提供国际化和本地化支持,方便多语言开发。
- 支持嵌入式开发
- 开源与商业版本
- Qt 提供GPL/LGPL 许可证的开源版本,同时也提供商业授权版本,可用于闭源商业应用开发。
3. Qt能做什么?
Qt 适用于各种软件开发场景,常见的应用包括:
应用类型 | 具体示例 |
---|---|
桌面应用 | Windows、Linux、macOS 应用,如文本编辑器、IDE、图像处理软件(如Photoshop的插件)、系统监控工具 |
嵌入式开发 | 智能家居、车载系统、工业控制(HMI人机界面)、医疗设备(医院监护仪)、自助终端(ATM机) |
移动应用 | Android 和 iOS 应用,如地图导航、智能设备控制App |
物联网(IoT) | 远程设备控制、智能硬件管理界面、数据采集终端 |
3D与图形应用 | 游戏引擎、3D建模软件(支持OpenGL、Vulkan等) |
网络通信 | 基于TCP/IP、MQTT、HTTP的客户端和服务器应用,如即时通讯软件 |
数据库管理 | 连接SQL/NoSQL数据库,开发数据库管理工具 |
4. Qt的核心模块
Qt 采用模块化架构,常见的模块如下:
模块名称 | 功能 |
---|---|
Qt Core | 核心模块,提供基本数据结构、线程管理、文件操作、时间管理等功能 |
Qt GUI | 2D图形、窗口管理、OpenGL渲染支持 |
Qt Widgets | 传统桌面UI组件,如按钮、文本框、表格、树形控件等 |
Qt Quick | 基于QML的UI开发,支持流畅动画和触摸屏操作,适合移动端和嵌入式设备 |
Qt Multimedia | 多媒体处理,如音视频播放、摄像头访问 |
Qt Network | 网络通信模块,支持HTTP、TCP、UDP、WebSocket、MQTT等 |
Qt SQL | 数据库模块,支持MySQL、SQLite、PostgreSQL等数据库 |
Qt Bluetooth | 支持蓝牙通信 |
Qt WebEngine | 集成Chromium浏览器引擎,用于开发Web应用 |
Qt Charts | 提供丰富的图表绘制功能 |
Qt 3D | 提供3D图形渲染,支持OpenGL |
Qt SerialPort | 串口通信,适用于嵌入式设备 |
5. Qt 开发方式
Qt 支持两种主要的UI开发方式:
(1)Qt Widgets
Qt Widgets 是 Qt 传统的 GUI 库,提供了基于**C++**的窗口组件,如按钮、文本框、菜单、表格等,适用于桌面应用开发。
示例:
#include <QApplication>
#include <QPushButton>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QPushButton button("Hello, Qt!");
button.show();
return app.exec();
}
(2)Qt Quick(QML + C++)
Qt Quick 采用QML(类似JavaScript的声明式语言),适用于移动应用、嵌入式触摸屏界面,支持流畅动画和动态UI。
示例:
import QtQuick 2.15
import QtQuick.Controls 2.15
ApplicationWindow {
visible: true
width: 640
height: 480
Button {
text: "Click Me"
anchors.centerIn: parent
onClicked: console.log("Button Clicked!")
}
}
6. Qt 开发环境搭建
(1)安装 Qt
- 下载 Qt:从Qt 官网下载 Qt 安装包。
- 选择安装组件:
- 必选:Qt Core、Qt Widgets、Qt Quick、Qt Network、Qt Creator(IDE)
- 选装:Qt Multimedia、Qt SerialPort、Qt WebEngine 等
- 配置 Qt Creator,创建新项目。
(2)交叉编译(嵌入式开发)
- 下载安装 ARM 交叉编译工具链
- 配置 Qt 交叉编译环境(qmake、CMake)
- 使用 Qt Creator 远程调试嵌入式设备
7. Qt 的应用案例
- 桌面软件:
- VLC 播放器(开源媒体播放器)
- Wireshark(网络抓包工具)
- VirtualBox(虚拟机软件的 UI)
- 嵌入式系统:
- 移动应用:
- Telegram(Qt 版本)
- Google Earth(部分界面使用 Qt)
9. 总结
Qt 是一个强大的跨平台 C++ 开发框架,适用于桌面、移动、嵌入式开发,提供丰富的 API 和工具支持,适用于工业控制、车载系统、智能家居、物联网等领域。如果你需要高性能、多平台兼容、现代化 UI 界面的开发,Qt 是一个值得选择的框架!