[Qt] Qt介绍 | 搭建SDK

目录

1. Qt 简介

什么是 Qt?

1.1 引入

1.2 GUI

1.3 Qt 介绍

2. Qt 发展史

3. Qt 支持的平台

4. Qt 版本信息

5. Qt 的优点

6. Qt 应用场景

7. Qt 成功案例

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

二. Qt 开发环境搭建

1. 开发工具概述

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 会借助你编写的代码,生成代码

2. 填写类信息设置界面

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

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

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

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

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

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

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

3. 选择版本控制系统

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql连接时报错1130-Host ‘hostname‘ is not allowed to connect to this MySQL server

不在mysql服务器上通过ip连接服务提示1130错误怎么回事呢。这个错误是因为在数据库服务器中的mysql数据库中的user的表中没有权限。 解决方案 查询mysql库的user表指定账户的连接方式 SELECT user, host FROM mysql.user;修改指定账户的host连接方式 update mysql.user se…

Elasticsearch: 高级搜索

这里写目录标题 一、match_all匹配所有文档1、介绍&#xff1a; 二、精确匹配1、term单字段精确匹配查询2、terms多字段精确匹配3、range范围查询4、exists是否存在查询5、ids根据一组id查询6、prefix前缀匹配7、wildcard通配符匹配8、fuzzy支持编辑距离的模糊查询9、regexp正则…

把vue项目或者vue组件发布成npm包或者打包成lib库文件本地使用

将vue项目发布成npm库文件&#xff0c;第三方通过npm依赖安装使用&#xff1b;使用最近公司接了一个项目&#xff0c;这个项目需要集成到第三方页面&#xff0c;在第三方页面点击项目名称&#xff0c;页面变成我们的项目页面&#xff1b;要求以npm库文件提供给他们&#xff1b;…

实现一个通用的树形结构构建工具

文章目录 1. 前言2. 树结构3. 具体实现逻辑3.1 TreeNode3.2 TreeUtils3.3 例子 4. 小结 1. 前言 树结构的生成在项目中应该都比较常见&#xff0c;比如部门结构树的生成&#xff0c;目录结构树的生成&#xff0c;但是大家有没有想过&#xff0c;如果在一个项目中有多个树结构&…

【新教程】华为昇腾NPU的pytorch环境搭建

1 硬件配置 使用学校的集群&#xff0c;相关配置如下&#xff1a; CPU&#xff1a;鲲鹏920 NPU&#xff1a;昇腾910B 操作系统&#xff1a;openEuler 22.03 2 安装版本 根据昇腾官方gitee上的信息&#xff0c;Pytoch 2.1.0是长期支持版本&#xff0c;因此选择安装这一版本&a…

在Ubuntu 18.04.6 LTS安装OpenFace流程

一、修改配置:将gcc8&#xff0c;g8作为默认选项 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 100 sudo update-alternatives --config gcc 选择版本&#xff0c;再查看gcc --version sudo update-alternatives --install /usr/bin/g g /usr/bin/g-…

typescript安装后仍然不能使用tsc,如何解决

1.全局安装 npm i typescript -g 2.发现仍然不行 解决方法&#xff1a; C:\Users\你的用户名\AppData\Roaming\npm解决办法&#xff1a; 1.确定对应的文件下载了 我们发现typescript是下载了的 2.设置环境变量的path 路径为typescript下的npm 3.cmd运行

硬件-射频-PCB-常见天线分类-ESP32实例

文章目录 一&#xff1a;常见天线1.1 PCB天线①蓝牙模块的蛇形走线-天线②倒F天线-IFA&#xff1a;③蛇形倒F天线-MIFA④立体的倒F天线-PIFA 1.2 实例示意图1.21 对数周期天线(LPDA):1.22 2.4GHZ的八木天线&#xff1a;1.23 陶瓷天线&#xff1a;1.24 外接天线&#xff1a; 二&…

PCA降维算法详细推导

关于一个小小的PCA的推导 文章目录 关于一个小小的PCA的推导1 谱分解 (spectral decomposition)2 奇异矩阵(singular matrix)3 酉相似(unitary similarity)4 酉矩阵5 共轭变换6 酉等价7 矩阵的迹的计算以及PCA算法推导8 幂等矩阵(idempotent matrix)9 Von Neumanns 迹不等式 [w…

25.1.3

java数组&#xff1a; dataType[] arrayRefVar //推荐写法 //int[] mylist //或 dataType arrayRefVar[] //int mylist[]创建数组对象&#xff1a; arrayRefVar new dataType[arraySize]; dataType[] arrayRefVar new dataType[arraySize];for-each循环&#xff1a; jav…

音频进阶学习九——离散时间傅里叶变换DTFT

文章目录 前言一、DTFT的解释1.DTFT公式2.DTFT右边释义1&#xff09; 复指数 e − j ω n e^{-j\omega n} e−jωn2&#xff09;序列与复指数相乘 x [ n ] ∗ e − j ω n x[n]*e^{-j\omega n} x[n]∗e−jωn复指数序列复数的共轭正交正交集 3&#xff09;复指数序列求和 3.DTF…

【保姆级】sql注入之堆叠注入

一、堆叠注入的原理 mysql数据库sql语句的默认结束符是以";"号结尾&#xff0c;在执行多条sql语句时就要使用结束符隔 开,而堆叠注入其实就是通过结束符来执行多条sql语句 比如我们在mysql的命令行界面执行一条查询语句,这时语句的结尾必须加上分号结束 select * fr…

我的桌面 1.9.75 | 个性化定制手机桌面,丰富的小组件和主题

我的桌面iScreen是一款万能桌面小组件APP&#xff0c;提供各种高颜值桌面主题与创意小组件自由组合。支持X面板、照片、待办清单、时钟、日历等实用有趣的小组件。拥有超过500种小组件供选择&#xff0c;包括灵动面板、滚动相册等&#xff0c;搭配300多种精美主题和高清壁纸&am…

汽车燃油软件标定测试

油箱测试 确定油箱的参数&#xff1a; 总容积&#xff0c;额定容积&#xff0c;不可用容积等。油泵测试&#xff08;静态&#xff09; 分为加油测试&#xff0c;减油测试&#xff0c;1L或者500ml增减&#xff1b; 分别测试油泵的阻值输出&#xff0c;类似&#xff1a; 油量 阻…

07-ArcGIS For JavaScript--隐藏参数qualitySettings(memory和lod控制)

目录 1、综述2、sceneview.qualitySettings2.1、sceneview.qualitySettings.memoryLimit2.2、lodFactor2.3 additionalCacheMemory 3、结论 1、综述 先上重点&#xff0c;SceneView.qualitySettings为隐藏对象参数&#xff0c;该对象的memoryLimit和lodFactor等值&#xff0c;…

信息科技伦理与道德1:研究方法

1 问题描述 1.1 讨论&#xff1f; 请挑一项信息技术&#xff0c;谈一谈为什么认为他是道德的/不道德的&#xff0c;或者根据使用场景才能判断是否道德。判断的依据是什么&#xff08;自身的道德准则&#xff09;&#xff1f;为什么你觉得你的道德准则是合理的&#xff0c;其他…

交换机关于环路、接口绑定、链路聚合的相关知识

文章目录 1、对交换机SW-1进行配置&#xff0c;仅允许Host-1通过Ethernet0/0/1接口与Host-3和Host-4通信&#xff0c;Host-2无法与其他主机通信。2、关闭生成树协议&#xff0c;验证环路造成的影响3、关闭生成树协议通过链路聚合实现两条链路正常通信并提高链路可靠性。 内容包…

QEMU网络配置简介

本文简单介绍下qemu虚拟机网络的几种配置方式。 通过QEMU的支持&#xff0c;常见的可以实现以下4种网络形式&#xff1a; 基于网桥&#xff08;bridge&#xff09;的虚拟网络。基于NAT&#xff08;Network Addresss Translation&#xff09;的虚拟网络。QEMU内置的用户模式网…

(二)当人工智能是一个函数,函数形式怎么选择?ChatGPT的函数又是什么?

在上一篇文章中&#xff0c;我们通过二次函数的例子&#xff0c;讲解了如何训练人工智能。今天&#xff0c;让我们进一步探讨&#xff1a;面对不同的实际问题&#xff0c;应该如何选择合适的函数形式&#xff1f; 一、广告推荐系统中的函数选择 1. 业务目标 想象一下&#x…

CentOS — 目录管理

文章目录 一、目录结构二、切换目录三、查看目录四、创建目录五、复制目录六、剪切目录七、删除目录 目录也是一种文件。 蓝色目录&#xff0c;绿色可执行文件&#xff0c;红色压缩文件&#xff0c;浅蓝色链接文件&#xff0c;灰色其它文件&#xff0c; 点开头的是隐藏文件&…