当前位置: 首页 > news >正文

QT工程打开、编译、运行流程

一、前言

这篇文章介绍QT的工程如何使用。 目前设计的很多的物联网项目的APP都是采用Qt开发的。很多同学对Qt比较陌生,不知道如何使用QT。

这篇文章就来解决这个问题。

二、QT下载

我这里采用的Qt版本是5.12.6,目前开发的物联网项目的上位机APP都是采用这个版本的QT开发的。

目前官网上是无法下载(国内的IP地址被封了,科学上网才可以),我这将QT的安装包已经下载下来了,放在了网盘里,大家可以去网盘下载。

网盘地址: https://ccnr8sukk85n.feishu.cn/wiki/QjY8weDYHibqRYkFP2qcA9aGnvb?from=from_copylink

(在软件工具目录QT安装包目录下)

image-20250311170108578

这是 QT5.12.6的官方下载地址:https://download.qt.io/archive/qt/5.12/5.12.6

你也可以从官方下载地址下载(需要解决上外网的问题)。

打开下载链接后选择下面的版本进行下载:

三、QT安装

QT安装的路径需要设置在纯英文路径下。一般默认的C盘路径就可以。 如果你要换其他安装目录,也要保证路径中没有中文字符。

软件安装时断网安装,否则会提示输入账户(当然,你注册一个账号登录也是可以的)。

双击安装包就可以进行安装。

image-20221203151742653

**选择编译器: (一定要看清楚了) ** (如果你需要其他的编译器,可自行选择)

image-20241028152725134

四、新建QT工程

这个章节是教大家测试一下安装之后的QT环境是否正常。

4.1 打开QT软件

安装QT之后,可以在Qt的安装目录下找到你的QT程序,你可以手动创建一个快捷方式放在桌面。

你可以根据你的QT安装目录去寻找你的QT软件。

比如 我的路径如下。

C:\Qt\Qt5.12.6\Tools\QtCreator\bin\qtcreator.exe

双击qtcreator.exe 就可以打开QT软件。

image-20250311170758671

4.2 新建工程

【1】新建工程

image-20240117144052547

【2】设置项目的名称。

image-20250304151039436

【3】选择编译系统

image-20240117144239681

【4】选择默认继承的类

image-20240117144302275

【5】选择编译器,如果你要编译Android的,可以选Android(如下)

image-20241028153603487

【6】点击完成

image-20240117144354252

【7】工程创建完成

image-20250304151134694

4.3 切换编译器

在左下角是可以切换编译器的。 可以选择用什么样的编译器编译程序。

目前新建工程的时候选择了2种编译器。 一种是mingw32这个编译Windows下运行的程序。 一种是Android编译器,可以生成Android手机APP。

不过要注意:Android的编译器需要配置一些环境才可以正常使用,这个大家可以网上找找教程配置一下就行了。

也可以看这篇文章(这篇是付费的)

https://blog.csdn.net/xiaolong1126626497/article/details/117254453

windows的编译器就没有这么麻烦,安装好Qt就可以编译使用。

下面我这里就选择的 mingw32这个编译器,编译Windows下运行的程序。

image-20250304151140151

4.4 编译测试功能

创建完毕之后,编译测试一下功能是否OK。

点击左下角的绿色三角形按钮

image-20250304151150333

正常运行就可以看到弹出一个白色的框框。这就表示工程环境没有问题了。 接下来就可以放心的设计界面了。

image-20250304151207573

到此,如果正常,说明你的环境已经安装好了。

五、如何打开现有的工程?

如果你得到了一个已经开发好的Qt工程,你想打开它编译使用,如何操作?

比如,你得到的工程是这样的。 你需要在你电脑上创建一个纯英文的目录,比如:D:/QtProject,再将这个工程复制 过去。

image-20250311171330452

复制过去之后,打开文件夹,可以看到后缀.pro 的这个文件。 双击它就可以打开工程。

image-20250311171526339

当然也有意外情况,如何你安装了QT但是这里的图标没有自动识别为QT工程,怎么办?

你可以,先打开Qt软件,软件在QT软件里选择打开工程,找到你的工程路径,选择工程打开也可以的。

image-20250311172106246

第一次打开工程需要你选择编译器。 如果你要编译器Android 和 Windows的版本,就按下面的截图选择编译器。

image-20250311172149613

进来之后,如果要编译Windows版本的,就按下面的截图设置配置。就可以编译运行了。

image-20250311172238284

启动之后的效果。

image-20250311172407418

如果你想编译Android版本的。 那么切换编译器就可以了。

image-20250311172536258

点击 锤子 按钮构建。

构建完成之后,在编译输出页面,可以看到生成的Android的安装包路径位置。

image-20250311172631742

然后通过QQ 或者 微信 其他手段发给你的手机就可以安装了。

QQ 或 微信 默认不识别安装包的。 你需要选择浏览器打开,就可以识别安装包,然后安装了。

六、更新Token失败如何解决?

如果你的项目是物联网项目,需要连接华为云IOT这种物联网服务器获取数据。 代码就会有使用HTTPS请求。

用到了HTTPS 就需要SSL的库。 你默认安装的QT是不带这些库的。

如果没有这些库,你点击界面上的的更新token 就会报错。

应用程序输出 栏目里也会提示警告。

比如: qt.network.ssl: QSslSocket::connectToHostEncrypted: TLS initialization faile

这样的提示。

如何解决呢?

在你的项目资料包目录下,会有一个windows的APP文件目录,进去可以看到两个文件。

libcrypto-1_1.dlllibssl-1_1.dll

image-20250311173219785

将这两个文件拷贝到你的Qt的安装目录下C:\Qt\Qt5.12.6\5.12.6\mingw73_32\bin 就可以了。

image-20250311173511683

然后再运行程序,测试更新Token就正常的。

image-20250311173702659

七、华为云的工程需要改哪里?

如果你的项目是华为云IOT的工程,运行了Qt之后需要替换你的华为云账号。

前提条件: 你的华为云是标准版你是严格按照设计文档做的步骤、你的项目编号是大于172

那么只需要,修改widget.h 文件的3个参数即可。

image-20250311174812570

如果不是呢?

看这个文档的第五章: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的核心特点

  1. 跨平台性
    • 代码一次编写,可在多个平台(Windows、Linux、macOS、Android、iOS、嵌入式Linux)上运行,减少重复开发工作。
  2. 模块化设计
    • Qt 采用模块化设计,提供了GUI、网络通信、多线程、数据库、多媒体、3D渲染等模块,可以根据需求选择合适的模块进行开发。
  3. 强大的GUI开发能力
    • Qt 提供了Qt Widgets(传统界面组件)和Qt Quick(QML + C++)(基于QML的现代UI开发)两种方式,可用于开发桌面软件、移动端App、嵌入式设备UI等
  4. 信号与槽(Signal & Slot)机制
    • Qt 采用信号与槽机制,可以实现高效的事件驱动编程,使界面组件和后台逻辑的交互更加方便。
  5. 丰富的工具支持
    • Qt Creator:官方IDE,支持代码编辑、调试、UI设计等功能。
    • Qt Designer:用于可视化设计UI界面。
    • qmake & CMake:支持项目构建和管理。
    • Qt Linguist:提供国际化和本地化支持,方便多语言开发。
  6. 支持嵌入式开发
    • Qt 可用于嵌入式Linux开发,支持触摸屏交互,常用于工业控制、车载系统、智能家居、医疗设备等领域。
  7. 开源与商业版本
    • 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 GUI2D图形、窗口管理、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
  1. 下载 Qt:从Qt 官网下载 Qt 安装包。
  2. 选择安装组件:
    • 必选:Qt Core、Qt Widgets、Qt Quick、Qt Network、Qt Creator(IDE)
    • 选装:Qt Multimedia、Qt SerialPort、Qt WebEngine 等
  3. 配置 Qt Creator,创建新项目。
(2)交叉编译(嵌入式开发)
  1. 下载安装 ARM 交叉编译工具链
  2. 配置 Qt 交叉编译环境(qmake、CMake)
  3. 使用 Qt Creator 远程调试嵌入式设备

7. Qt 的应用案例

  1. 桌面软件
    • VLC 播放器(开源媒体播放器)
    • Wireshark(网络抓包工具)
    • VirtualBox(虚拟机软件的 UI)
  2. 嵌入式系统
    • 车载信息娱乐系统(Tesla UI、宝马车机)
    • 工业自动化(西门子HMI、医疗设备)
    • 智能家居(智能门锁、智能空调)
  3. 移动应用
    • Telegram(Qt 版本)
    • Google Earth(部分界面使用 Qt)

9. 总结

Qt 是一个强大的跨平台 C++ 开发框架,适用于桌面、移动、嵌入式开发,提供丰富的 API 和工具支持,适用于工业控制、车载系统、智能家居、物联网等领域。如果你需要高性能、多平台兼容、现代化 UI 界面的开发,Qt 是一个值得选择的框架!

相关文章:

  • Netty基础—2.网络编程基础三
  • Dify平台训练个人文档助手
  • 2024年群智能SCI1区TOP:混沌可行性恢复粒子群算法CEPSO,深度解析+性能实测
  • 20250212:linux系统DNS解析卡顿5秒的bug
  • 关于mybatis查询时,时间字段的映射问题
  • Java 集合框架大师课:集合框架源码解剖室(五)
  • 内网安全防护新思路 —— HFish + ELK 与 T-Pot 全面蜜罐系统比较分析
  • Ollama杂记
  • bin/python: bad interpreter: No such file or directory
  • Python:正则表达式
  • Java数据结构第二十二期:Map与Set的高效应用之道(一)
  • Nginx正向代理HTTPS配置指南(仅供参考)
  • K8s 1.27.1 实战系列(十)PV PVC
  • 三角形页面
  • DeepSeek API 客户端使用文档
  • 重生之我在学Vue--第7天 Vue 3 数据请求(Axios)
  • Unity辅助工具_头部与svn
  • DeepIn Wps 字体缺失问题
  • 安全焊接,智慧监管
  • EG82088串口边缘计算网关
  • 体坛联播|C罗儿子完成国家队首秀,德约结束与穆雷合作
  • 金正恩观摩朝鲜人民军各兵种战术综合训练
  • 海运港口股掀涨停潮!回应关税下调利好,有货代称美线舱位爆了
  • 硅料收储挺价“小作文”发酵光伏板块罕见大涨,知情人士:确实在谈
  • 【社论】个人破产探索,要守住“诚实而不幸”的底线
  • 习近平致电祝贺阿尔巴尼斯当选连任澳大利亚总理