• 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,特斯拉,微软,三星,宝马,西门子,惠普,飞利浦等公司使用。 

  • 相关阅读:
    spring5学习(ioc、aop、事务,webflux)
    嵌入式Linux裸机开发(一)基础介绍及汇编LED驱动
    【Python】numpy矩阵运算大全
    源码分析:Actor模型架构
    “快看”cms代码审计
    Leetcode Algo Day2
    AQS源码解析 7.共享模式_CyclicBarrier重复屏障
    6个高质量插画、插图网站。
    沁恒CH32V003F4P6 开发板上手报告和Win10环境配置
    css3对页面打印设置的一些特殊属性,如@page,target-counter等
  • 原文地址:https://blog.csdn.net/qq_20173195/article/details/127100201