[Qt] Qt介绍 | 搭建SDK

目录

[1. Qt 简介](#1. Qt 简介)

[什么是 Qt?](#什么是 Qt?)

[1.1 引入](#1.1 引入)

[1.2 GUI](#1.2 GUI)

[1.3 Qt 介绍](#1.3 Qt 介绍)

[2. Qt 发展史](#2. Qt 发展史)

[3. Qt 支持的平台](#3. Qt 支持的平台)

[4. Qt 版本信息](#4. Qt 版本信息)

[5. Qt 的优点](#5. Qt 的优点)

[6. Qt 应用场景](#6. Qt 应用场景)

[7. Qt 成功案例](#7. Qt 成功案例)

[8. Qt 发展前景及就业分析](#8. Qt 发展前景及就业分析)

[二. Qt 开发环境搭建](#二. Qt 开发环境搭建)

[1. 开发工具概述](#1. 开发工具概述)

[2.Qt SDK 安装](#2.Qt SDK 安装)

3.使用


1. Qt 简介

什么是 Qt?

Qt 是一个跨平台的 C++ 图形用户界面应用程序框架

  • 它为应用程序开发者提供了建立艺术级图形界面所需的所有功能。
  • 它是完全面向对象的,很容易扩展。
  • Qt 为开发者提供了一种基于组件的开发模式,开发者可以通过简单的拖拽和组合来实现复杂的应用程序,同时也可以使用 C++ 语言进行高级开发。

图形用户界面(GUI):指采用图形方式显示的计算机操作用户界面,是计算机与其使用者之间的对话接口,是计算机系统的重要组成部分。

1.1 引入

技术之间,具有非常强关联性

Qt 这个技术,用于进行"客户端开发",属于前端开发中的"桌面运用开发"(电脑上的应用程序)

前置知识

  • 客户端:直接和用户打交道的这一端的程序(steam,chrome......)
  • 服务器:站在客户端背后的,提供支撑
  • 虽然大部分的客户端程序,需要服务器。但有些程序不需要服务器,例如画图板...但同样也是直接和用户打交道,也可以称为"客户端程序"

介绍

  • Qt 无法开发网页前端,也不能开发移动应用(目前支持了,但还没什么人用...
  • 客户端开发的主要任务:编写和用户交互的页面

和用户交互的界面,两种典型风格:

  • 命令行界面(黑框框)=>TUI
  • 图形化界面=>GUI

Qt 是用来编写 桌面的 GUI 程序的一套框架


1.2 GUI

windows 下的 GUI 开发,基于 C/C++

  1. 提供的原生 API,开发起来非常原始,也非常繁琐
  2. MFC 上个世纪 90 年代,影响力还是非常深远的~~同时还有 VC6.0
  3. 面向对象的对 API 进行了封装,Qt(1991 年)诞生,和 MFC 不同,MFC 已经寄了,Qt 还在推陈出新,更新版本,至今任然非常有生命力
  • 还有 GTK ,WxWidget...
  • 后来微软有了自己的语言,C#(sharp),量身定做了一套开发 GUI 技术体系~例如 WPF,UWP

开源社区推出了 Electron,本质是把基于 HTML 这样的网页,打包成一个 windows 上运行的客户端程序~

背景:Electron 这个技术体系,最初是用来开发"atom"文本编辑器的~Github 开发的,后来 atom 就寄了(因为微软推出了 vscode)

  • 比较大的缺点:运行效率 还是比较低..

1.3 Qt 介绍

Qt 虽然只是上述解决方案中的其中一个,但用的公司还是挺多的

优点:能够跨平台~~(支持 Windows,macos,Linux)

  • Qt 是一个 跨平台的 C++图形用户界面应用程序 框架
  • 框架:大佬开发出来,给普通程序员方便用的,限制程序员代码的自由~(就像围棋照着棋谱下,至少不会太差),在关键节点添加自己的代码

框架 vs 库

库和框架都是属于,大佬把一些代码写好了,让你去使用

不同点

  • 库:被程序员调用(程序员是主体)
  • 框架:则是占主体~程序员配合框架,完善填充框架中留出的一些细节

Java 对于框架,就更加依赖~Spring

编写 C++代码,框架当然也很重要,但 C++的生态是割裂的,离散的,不像 隔壁 Java,存在一些巨无霸社区,一统天下,C++不同的开源社区/大厂,各自有各自的框架,各自为政~

相比之下,Qt 这种,能够被大家共同认可的框架,在整个 C++生态中是不多见的


2. Qt 发展史

  • 1991 年,在计算机,诞生了很多神奇的东西

比如 Qt,Python,Vim,OpenGL,Linux...

Qt 的发展

  • 1991年:Qt最早由奇趣科技(Trolltech)开发;
  • 1996年:进入商业领域,并成为目前流行的Linux桌面环境KDE的基础;
  • 2008年:++奇趣科技被诺基亚++公司收购,Qt成为诺基亚旗下的编程工具;

诺基亚主推 Qt 来作为开发塞班系统应用程序的解决方案(最早的智能手机系统了)

2007 年,乔布斯发布苹果手机~标志移动互联网时代开启了

2012 年左右,iPhone4 称为一代经典,小米和华为也入场智能手机,安卓系统大规模崛起

诺基亚最后的反扑:和微软推出了 windows phone~撸没系列,没多久就没了

  • 2012年:Qt被++Digia++公司收购;
  • 2014年4月:跨平台的集成开发环境Qt Creator 3.1.0发布;同年5月20日,Qt 5.3正式版发布,至此++Qt实现了对iOS、Android、Embedded等各平台的全面支持。++

3. Qt 支持的平台

  • Qt 支持的系统
  1. windows(各个版本)
  2. Linux,尤其是 Linux 中的 KDE 桌面基于 Qt 构建的

TUI vs GUI

Linux 主要是给服务器使用,服务器不需要图形界面

TUI,基于命令操作,门槛更高,效率也更高

GUI 基于图形化操作,门槛低,效率也低

3.Mac 系统

4.嵌入式系统

日常生活中冰箱,洗衣机,路由器...这些设备内部也有计算机,这种里面的硬件配置就不需要很高了,其中的图形化界面程序设计使用 Qt/安卓


4. Qt 版本信息

目前最新的版本是 Qt 6。但是,相对来说,Qt 6 和 Qt 5 之间的核心功能区别不大,并且企业中仍然有大量的项目在使用 Qt 5。因此后面主要用Qt 5来进行介绍

软件开发中,并不是越新越好,在商业软件开发中,引入新的性能,不如优先确保不引入严重的问题~

Qt 提供 商业许可 和 开源许可 两种授权方式。

  • 商业许可: 你想使用 Qt 开发一个程序,就可以向迪迦这个公司购买商业许可证(花钱,主要买的是技术支持!商业许可提供了更多的功能和服务)

比如:Redhat(收费 Linux 发行版)

比如,Oracle(收费的数据库)

  • **开源许可:**想开发一个程序,不必花钱,直接白嫖

5. Qt 的优点

  • 跨平台支持广泛。
  • 接口简单易学。
  • 内存管理机制简化。
  • 开发效率高。
  • 社区活跃,市场份额增长。
  • 支持嵌入式开发。

6. Qt 应用场景

  • 桌面应用程序、移动应用程序、嵌入式系统等。

7. Qt 成功案例

(1)Linux 桌面环境 KDE

Linux 桌面环境中存在好几套桌面环境:

  • GNOME(基于 GTK 创建)
  • KDE(基于 Qt 创建)

(2)WPS Office 办公软件

(3)Skype 网络电话

Skype 是一款即时通讯软件,其具备 IM 所需的功能,比如视频聊天、多人语音会议、多人聊天、传送文件、文字聊天等功能。

它可以高清晰与其他用户语音对话,也可以拨打国内国际电话,无论固定电话、手机均可直接拨打,并且可以实现呼叫转移、短信发送等功能。

(4)Google Earth 谷歌地图

(5)VLC 多媒体播放器

(6)VirtualBox 虚拟机软件(VirtualBox 号称是最强的免费虚拟机软件)

8. Qt 发展前景及就业分析

  • 行业发展方向包括 物联网、自动驾驶、智能交通、游戏开发等领域。
  • 就业方面提供了广泛的职位选择和较高的薪资水平。
  • 再去学安卓,ios 等图形化开发也会更加的容易上手

二. Qt 开发环境搭建

1. 开发工具概述

我们知道开发环境需要安装三个部分

1.C++编译器

2.Qt SDK(软件开发工具包)

3 . Qt 的集成开发环境(IDE)

主要开发环境有 Qt Creator(推荐)、Visual Studio 和 Eclipse。

  • Qt 官方提供的 Qt Creator(最容易入门,比较方便,但有些 bug 影响使用体验)
  • VS(功能更强,但需要额外的配置更多,安装 Qt 插件,把 Qt SDK 使用 VS 的编译器重新编译)
  • Eclipse(并非只是 Jave IDE,可以搭配

说是安装三个东西,其实只要安装一个 Qt SDK,另外两个也就都有了


2.Qt SDK 安装

但凡需要下载安装一个程序,首选官方网站!!

Qt 下载官⽹:http://download.qt.io/archive/qt/国内清华源:https://mirrors.tuna.tsinghua.edu.cn/qt/archive/qt/ 进⼊官⽹,按如下图⽰进⾏相应的系统版本下载即可。

选择需要下载的版本;

安装软件的时候,所在目录,不要中文,特殊符号

给装好的 Qt 配置一下环境变量

要添加的目录:包含动态库和 exe 的

❗ 不要从搜索框搜索"环境变量"进入环境变量设置,直接搜索的话是使用用户(user)身份进入的,所以只能设置用户环境变量

要从 控制面板--系统和安全--系统--高级系统设置--环境变量 进入环境变量设置,这样的路径是使用了管理员身份进入的,就可以设置系统环境变量了

为什么要设置环境变量?

  • 环境变量 是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序将要用到的信息。
  • 在Windows上设置Qt的环境变量是为了能够在命令行或者其他应用程序中直接访问Qt相关的命令和工具。

环境变量,也可以理解成一种简单的"进程间通信"机制,方便程序运行时,找到位置

之后我们在搜索菜单中输入 Qt,就可以看到如下 4 个文件:

对于官方文档:读英文文档,很重要,一步步静下心来


3.使用

  1. Qt 会借助你编写的代码,生成代码
  1. 填写类信息设置界面

使用 Qt Creator 创建项目会自动生成一些代码出来,生成的代码就包含一个类,此处就是要选择这个自动生成的类的父类是什么。

⭕对于基类的选择,目前有三种基类:

💡这里生成的文件名是和类名关联的,这样的关联并非是强制的(但推荐这么做)。

上述三个类之间的关系如下图:

💡这个 Form file 非常关键,Qt 中创建图形化界面的程序有两种方式:

  • 直接通过 C++ 代码的方式创建界面。
  • 通过 Form file,以图形化的方式来生成界面。此时就可以使用 Qt Designer 或者直接使用 Qt Creator 来编辑这个 ui 文件,从而以图形化的方式快速方便的生成图像界面。

Qt 内置的类 都是以 Q 为前缀开头的。

  1. 选择版本控制系统

点击 "下⼀步" 进入项目管理界面。在项目管理界面可以设置作为子项目,以及加⼊版本控制系统管理。这两个功能暂时用不到,都用默认的 <None> ,然后点击 "完成"。

sum:前期 我们先选择使用 Qwight,其余创建一个新的 qt 项目,就是一路 next 就好啦~

相关推荐
加酶洗衣粉9 分钟前
PostgreSQL学习笔记(一):PostgreSQL介绍和安装
笔记·学习·postgresql
人工智能技术咨询.37 分钟前
工信部电子标准院计算机视觉证书报考指南!
人工智能·深度学习·学习·计算机视觉·语言模型
XWXnb640 分钟前
Makefile介绍
linux·运维·服务器
ThreeYear_s1 小时前
OFDM学习-(二)长短序列和PPDU整体数据处理流程
学习
JavaPub-rodert1 小时前
项目48:简易语言学习助手【源代码】 --- 《跟着小王学Python·新手》
服务器·开发语言·python·学习·microsoft
吃不饱的得可可1 小时前
【Qt】主窗口
开发语言·qt
Rinai_R1 小时前
关于大一上的总结
经验分享·学习
CodeClimb2 小时前
【华为OD-E卷 - 最优资源分配 100分(python、java、c++、js、c)】
java·javascript·c++·python·华为od
新睿云.任义兵2 小时前
用 C++ 创建控制台计算器
开发语言·c++
嵌入式小杨2 小时前
阻抗(Impedance)、容抗(Capacitive Reactance)、感抗(Inductive Reactance)
单片机·嵌入式硬件·物联网·学习·面试·硬件工程