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

Qt:Qt背景

目录

1.Qt解释

2.Windows下开发GUI的方案

3.框架

4.Qt历史

4.Qt支持的平台

5.Qt版本

6.Qt案例


1.Qt解释

        前端开发,分为网页前端开发(Web)、桌面应用开发(Windows、Linux)、移动应用开发(Android)。Qt一般用于客户端开发,这里的客户端是狭义的,指桌面应用开发。

        提到Qt,与之密切相关的关键词就是“桌面应用开发”、C++框架

        Qt不能用来开发Web网页,也不能用来开发Android应用,但是最新版的Qt也支持开发Android应用,但是几乎没人使用。

        客户端开发的重要任务之一就是用户使用界面的开发。交互界面一般有两种分格:

        1.命令行风格TUI (Terminal  User Interface)

        2.图像界面GUI (Graphical User Interface)

        而Qt就是用来编写GUI程序的一套框架。


2.Windows下开发GUI的方案

        1.Windows API,使用Windows系统提供的原生API来开发,早期Windows开发常用的使用方案,现在几乎淘汰了。

        2.MFC (Microsoft Foundation Classes),微软基础类 库,早期划时代的一套方案。

        3.Qt (1991年诞生),和MFC差不多同时期的产物,但是如今MFC已经淘汰了,而Qt社区活力满满。

        以上方案都是基于C/C++语言

        还有一些方案比如GTK、wxWidgets······但是市场不多。

        后来,微软自研了C# (.net) 语言,于是有了一套新的方案:

        4.Windows Forms

        5.从Windows Forms升级上来的方案,比如WPF、UWP等等

        6.当前也比较流行的方案,Electron方案,大致是将HTML网页打包为应用程序,该技术体系是Github团队开发一款叫atom的文本编辑器所研发的,但是atom被微软开发的vscode打败了。由于该方案基于HTML轻量级网页,所以使用该方案的软件性能比Qt开发的界面差。

        以上,Qt的优点,C++跨平台 (Windows、Linux、Mac)、性能高,使得Qt一直是一棵常青树。

3.框架

         框架,可以理解为优秀代码的模板,我们根据框架的规则写代码。相比之下,Java社区的spring框架十分成熟,几乎快要成为标准。而C++社区是割裂的,没有很成熟同时使用者也众多的方案,因此,很难得,Qt已经是C++社区比较优秀的方案了。

4.Qt历史

        计算机神奇的一年,1991年,一家名气很小的公司奇趣科技研发了Qt技术,同年,还有Python诞生、Vim、OpenGL、Linux等众多知名技术诞生。

        1996 年 进⼊商业领域,它也是当时流⾏的 Linux 桌⾯环境 KDE 的基础;

        2008年,诺基亚收购了奇趣科技,在诺基亚收购后,Qt的曝光率大大提升。

        2012 年 Qt ⼜被 Digia 公司收购。诺基亚手机业务断崖式下降,最后和微软做了一代Windows Phone系统的Lumia手机。

        2014 年 4 ⽉ 跨平台的集成开发环境 Qt Creator3.1.0 发布,同年 5 ⽉ 20 ⽇发布了 Qt 5.3 正式版,⾄ 此 Qt 实现了对 IOS、Android、Embedded 等各平台的全⾯⽀持。

4.Qt支持的平台

        Windows各个版本。Windows桌面环境和内核绑定在一起,因此,其桌面开发方案较少。

        Linux各种发行版,尤其是基于Qt开发的KDE桌面。Linux下有多种桌面环境开发方案,较热门的有基于Qt的KDE方案,以及基于GTK开发的GNOME方案。

        Mac

        部分嵌入式系统

        安卓和IOS,几乎没人使用,约等于没有。

5.Qt版本

        最新为Qt 6 ,但是主流还在使用Qt 5

6.Qt案例

         Linux 桌⾯环境 KDE、WPS Office 办公软件、Google Earth ⾕歌地图 VLC 多媒体播放器 VirtualBox 虚拟机软件、剪映

http://www.lryc.cn/news/429257.html

相关文章:

  • 【数据结构】选择排序
  • 国产GD32单片机开发入门(二)GD32单片机详解
  • 8个我平时每天都会看的网站,涵盖办公、娱乐、学习等
  • Vue2——父子之间间的调用
  • xfs Vs ext4?
  • 数据结构stack (笔记)
  • SQL - 创建 表和数据库
  • 使用 Arch Linux 几个月有感 | 为什么我选择 Arch Linux ,Arch 的优缺点有什么 | 一些Linux发行版推荐
  • SQLserver中的增删改查和数据类型
  • 个人收藏个性化、实用性、可玩性在线网站持续更新,与君共享
  • win10蓝牙只能发送,无法接收
  • 【论文阅读03】用于海洋物体检测的多注意力路径聚合网络
  • Linux 进程(2)
  • [CSCCTF 2019 Qual]FlaskLight1
  • layui table表单 checkbox选中一个其它也要选中
  • 【pip镜像设置】pip使用清华镜像源安装
  • c++ 智能指针--std::shared_ptr
  • 网络工程师学习笔记(二)
  • 90.WEB渗透测试-信息收集-Google语法(4)
  • 阿里Qwen2开源大模型本地部署及调试全攻略
  • 『功能项目』移动后的光标显示【04】
  • HTML 基本语法特性与 title 标签介绍
  • CSS的:placeholder-shown伪类:精确控制输入框占位符样式
  • Java之HashMap的底层实现
  • 多张图片进行模型重建并转换为OBJ模型
  • 信息安全保证人员CISAW:安全集成
  • 别再无效清理微信内存啦,这才是正确清理内存的方式
  • ant design 的 tree 如何作为角色中的权限选择之一
  • 如何在项目管理中完成项目立项?
  • LearnOpenGL——延迟渲染学习笔记