2022年QT初体验以及未来趋势发展以及前景概要

CSDN话题挑战赛第2期
参赛话题:Qt应用程序开发

目录

一. Qt介绍

二.Qt历史发展历程

时间线

QT的未来趋势发展

”以客户为中心设计“

Android上Qt/QML的4K HDR视频隧道支持

Qt 6.2的架构改变

三. QT基础组件分类

四. 为什么选择QT?

五. QT支持的平台

六. 什么是QML?

七. 什么是 QtWidget?

八. QT widget与 QML之间有什么区别?

九. 初体验(创建第一个QT应用)

十. 总结


一. Qt介绍

Qt 是一款跨平台软件,用于创建图形用户界面以及跨平台应用程序,这些应用程序运行在各种软件和硬件平台上,如Linux、Windows、macOS、Android或嵌入式系统,底层代码库几乎没有变化,同时仍然是具有本地功能和速度的本地应用程序。

二.Qt历史发展历程

1990年夏天,Haavard和Eirik 一起开发了一个用于超声图像的c++数据库应用程序。系统需要能够在Unix、Macintosh和Windows上使用GUI运行。那年夏天的一天,Haavard和Eirik出去晒太阳,当他们坐在公园的长凳上时,Haavard说:“我们需要一个面向对象的显示系统。”最终的讨论为他们不久将继续构建的面向对象的跨平台GUI框架奠定了知识基础。

时间线

1990 Haavard Nord和Eirik Chambe-Eng在挪威特隆赫姆的公园构想出来Qt。

1995 Troll Tech 于 5 月 20 日首次公开发布。用于 X11/Linux 的 Qt 0.90。商业和开源(FreeQt 许可证)

1996 "头号客户":欧洲航天局。 Qt 1.0,完全免费的 X11 支持免费软件开发和 Windows。以 Qt 作为其底层库建立的 KDE 项目

1998 KDE Free Qt Foundation:保证自由软件开发的 Qt 可用性

1999 Qt 2.0 - Qt/X11 开源与 QPL(Q 公共许可证)

2000 新的 Qt 窗口系统,Qt/Embedded,又名 QWS 和 Qtopia Core。 GPL + 商业许可下的 Qt/X11 和 Qt/Embedded。 GPL v2 与 Qt 2.2

2001 Qt 3.0 - “多数据库环境、多语言、多显示器”,支持 Mac OS X 和新的 Qt Designer GUI 构建器

2005 Qt 4.0。适用于所有平台甚至 Windows 的商业和 GPL 2.0(或更高版本)下的全面改造(又名兼容性中断)(已发布 Qt 4 舞蹈视频)

2006 Trolltech IPO(首次公开募股)。Greenphone开发智能手机。Qtopia在全球数以百万计的设备中,从夏普到摩托罗拉。

2008 诺基亚收购Trolltech,“诺基亚Qt软件”

2009 Qt Creator的发布和Qt 4.5带来了LGPL v2.1

2010 Qt 4.7推出了Qt Quick,集成了WebKit,支持塞班

2011 Digia收购Qt商业授权业务。Qt的项目。诺基亚N9 -诺基亚MeeGo“Harmattan”智能手机。诺基亚改变智能手机平台战略

2012 Digia获得了Qt的所有权利,“Digia, Qt”。Qt 5.0的大改,新的模块化代码库,QPA (Qt平台抽象)的整合,Qt Quick 2,以及对移动设备的更多支持(WinRT)。

2013 引导到Qt预构建的软件栈和Qt WebEngine

2014 “Digia, Qt”成为自己的实体“The Qt Company”,是Digia的子公司

2015-至今 Qt的第一个公开发布20周年。一个Qt站点统一完成。全球超80万+ Qt开发人员

QT的未来趋势发展

”以客户为中心设计“

在工业和商业环境中,客户体验有时会被抛弃,但它会带来不同。在Girbau,我们有各种各样的客户,他们对我们的每种产品都有不同的需求。此外,我们还需要有效地生产、销售和安装我们的产品。设计一个考虑到所有这些需求的新硬件和软件平台的过程是一个挑战,但它必须提供简单和可靠的解决方案,为我们的客户带来利润和创新。

Android上Qt/QML的4K HDR视频隧道支持

目前,Qt多媒体渲染视频到一个SurfaceTexture,这需要Android框架访问视频数据。然而,在飞机上,视频必须以隧道模式播放,以提供最好的视频体验。这将阻止框架访问视频数据。
在这次演讲中,我们如何能够在隧道模式下渲染4K HDR视频Qt/QML,并提供最佳的乘客体验。

Qt开发人员的现代CMake

55%的开发人员使用CMake作为c++代码的构建工具,CMake是c++事实上的标准构建工具。CMake开发团队和社区对Qt6将使用CMake作为其主要构建系统感到兴奋。

CMake在过去20年里不断发展,每当一个主要社区采用CMake时,都会添加一些功能来支持该社区。Qt6在这方面并不是唯一的。为了支持这一转变,已经向CMake添加了一些特性。例如,ninja版本现在支持同时进行多个配置,automoc支持也得到了改进,定制命令可以添加依赖信息。除了介绍这些新添加的内容和其他内容外,本次演讲还将介绍如何利用最新的CMake编码范式和开发人员可用的新特性来编写现代CMake代码。

Qt 6.2的架构改变

在开发Qt 6时,我们希望建立在现代c++标准的基础上。c++ 17是最新发布的版本,Qt 6现在依赖于c++ 17兼容的编译器。这使得我们有可能清理和改进我们的代码库,并为用户提供更现代的api。

在处理大型数据集和性能方面对底层容器类进行了改进。

下一代QML我们已经开始在更新QML语言方面做出更大的努力,使它在未来更安全和更容易使用。Qt 6.0 - 6.2在此奠定了基础,但这种持续的努力将在Qt 6系列中继续进行。

将属性绑定引入c++是使QML如此成功的概念之一。在Qt 6中,我们已经在c++中实现了这个概念。

新的图形架构Qt 6为如何处理与底层操作系统api的集成提供了一个全新的架构。由于新的渲染硬件接口(RHI), Qt 6现在默认使用每个系统上最好的图形API,显著提高了兼容性——特别是在桌面和移动操作系统上,如Windows和macOS,以及iOS。

Qt Quick传统上是一个用于构建动画和流动2D用户界面的框架。通过Qt 6,我们也简化了将3D内容集成到基于QML的应用程序中。深度集成使得在任何级别混合2D和3D内容,同时获得系统的最大性能变得微不足道。

在Qt 6中,我们将构建系统从qmake切换到CMake,这是目前基于c++的应用的标准构建系统。虽然qmake在Qt 6的生命周期内仍然被支持,但初步的用户报告显示,在切换到cmake后,qmake有了显著的改进。

三. QT基础组件分类

框架的主干是由Qt 基础模块组成的。它们如下:

Qt 基础模块特点
Qt Core

所有其他模块都不需要这些非图形化的核心类

Qt GUI用于GUI设计的基本类,包括OpenGL
Qt Multimedia一组用于处理多媒体的QML类型和c++类
Qt Multimedia Widgets类基于小部件来实现多媒体功能
Qt Network应用程序api依赖于TCP/IP网络
Qt QMLQt QML标记语言的框架和类型
Qt Quick框架创建动态应用程序自定义QML UI
Qt Quick Controls 2轻量级、非常高效的QML类型简化了接口的表述
Qt Quick Dialogs用于创建和与系统对话框交互的类型
Qt Quick Layouts用于已开发接口中对象布局的QML类型
Qt Quick TestQML应用程序的测试框架
Qt SQL类用于SQL数据库集成
Qt Test类,用于Qt应用程序和库的详细测试
Qt Widgets用于经典UI创建的UI元素集

四. 为什么选择QT?

  1. 使用Qt,您可以创建易于阅读、重用和维护的代码,占用更少的空间,并已证明具有高质量的性能。
  2. 您将有能力创建有吸引力的Qt GUI。
  3. 由于其高效的功能,Qt软件开发所需的时间更少,仍然是一个具有成本效益的解决方案。
  4. 由于c++编程语言的实现,程序员可以使用多种库。
  5. api使Qt应用程序开发更容易。
  6. 该框架具有跨平台的特点。
  7. 借助3D Studio更容易创建3D图形用户界面。

五. QT支持的平台

您可以创建图形用户界面以部署在桌面、移动和嵌入式操作系统上。无需重写源代码。要将 Qt 用于 32 位或 64 位平台,您所需要的只是正确的编译器和渲染器。

您可以在下面找到支持的平台:

  • 桌面平台:
    • Linux/X11
    • macOS
    • Windows
  • 移动平台:
    • Android
    • iOS/tvOS/watchOS
    • Universal Windows Platform (UWP)
    • Qt for WebAssembly
  • 嵌入式平台(使用 Qt 进行设备创建):
    • Linux
    • QNX
    • INTEGRITY
    • VxWorks

六. 什么是QML?

QML 是一种声明性语言,其语法类似于 CSS 和 JSON,支持命令式 JS 表达式。QML 定义了对象的属性及其关系以及对其他对象变化的响应。与命令式语言不同,它将属性的变化以及行为直接集成到对象定义中。通常,引擎会从 QML 文档中加载 Qt 标记语言的源代码。然后,开发人员可以在应用程序中进一步重用对象类型。

七. 什么是 QtWidget?

Qtwidget是用户界面的原子:它从窗口系统接收鼠标、键盘和其他事件,并在屏幕上绘制自己的表示。每个小部件都是矩形的,它们按z轴顺序排列。小部件由其父部件和它前面的小部件剪切.

八. QT widget与 QML之间有什么区别?

QT  widget很早以前就发明了,甚至在智能手机出现之前。这就是为什么小部件最初是为桌面应用程序设计的。QML和Qt Quick,作为一种为他们的智能手机轻松创建gui的方法。这就是Qt Quick最初为智能手机设计的原因。
然而,人们正在努力将这两个世界统一起来。例如,Qt Quick Controls包含许多为桌面应用程序设计的组件。

语言差异

  • 小部件类是 C++ 类;您可以完全用 C++ 对它们进行编码。
  • QML 是一种具有声明性组件的语言。它类似于 CSS、JSON 和 JavaScript。

技术差异:

  • Qt Widgets 仅使用 CPU(软件)渲染
  • Qt Quick 可以使用 GPU(硬件)渲染
  • 因为 Qt Widgets 比较老,所以开发的时间比较长,所以比较成熟和稳定。
  • 由于 Qt Quick 较新,它具有小部件中没有的现代功能,例如流体动画和粒子

九. 初体验(创建第一个QT应用)

第一步:前往qt官网下载在线安装包.

Index of /archive/online_installers/4.4

这里可以根据你们实际环境去选择

打开

 qt5版本目前需要注册个账号(免费),然后一直点下一步

到这里选择组件,我们可选择qt5.15.2版本。点击下一步直至最后安装完成,大约需要2小时左右。

我们回到桌面,打开qt- creator.

点击,   新建,Application(QT),   QT Quick Application,   Choose

然后继续下一步

点击下一步,完成

main.qml 就是我们要绘制的窗口界面文件

main.cpp 就是我们c++后端逻辑代码

点击三角号运行,运行第一个helloword 程序

十. 总结

Qt是一种流行的解决方案,用于专注于创建嵌入式设备和物联网软件的项目。它也用于桌面和移动开发。最著名的Qt项目之一是KDE Plasma,它经常被评为最佳桌面环境。Qt被LG,特斯拉,微软,三星,宝马,西门子,惠普,飞利浦等公司使用。 

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Meta.Qing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值