立即注册 找回密码

微雪课堂

搜索
微雪课堂 树莓派 树莓派QT教程 查看内容

树莓派Qt系列教程1:Qt GUI框架简述及了解

2020-5-8 20:51| 发布者: imliubo| 查看: 14141| 评论: 0|原作者: IAMLIUBO

摘要: 在开始本系列教程之前我们先来简单了解一下这个Qt GUI框架,以便对Qt有一个最基础的认知。

前言

在开始本系列教程之前我们先来简单了解一下这个Qt GUI框架,以便对Qt有一个最基础的认知,本篇文章的内容大多数来自网络。

Qt是什么

要完全将Qt是什么讲明白,可能有一些复杂,这里给大家概括性的总结为一句话:

Qt是一个跨平台的 C++ 开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序,也可以开发不带界面的命令行(Command User Interface,CUI)程序。

如果细致一点来说的话,我们可以看一下Qt的百科词条:

Qt是一个1991年由Qt Company开发的跨平台C++图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,Qt很容易扩展,并且允许真正地组件编程。2008年,Qt Company科技被诺基亚公司收购,Qt也因此成为诺基亚旗下的编程语言工具。2012年,Qt被Digia收购。2014年4月,跨平台集成开发环境Qt Creator 3.1.0正式发布,实现了对于iOS的完全支持,新增WinRT、Beautifier等插件,废弃了无Python接口的GDB调试支持,集成了基于Clang的C/C++代码模块,并对Android支持做出了调整,至此实现了全面支持iOS、Android、WP,它提供给应用程序开发者建立艺术级的图形用户界面所需的所有功能。基本上,Qt 同 X Window 上的 Motif,Openwin,GTK 等图形界面库和 Windows 平台上的 MFC,OWL,VCL,ATL 是同类型的东西。

Qt发展历史

Qt发展到现在差不多已经快30个年头了, 能够持续不断的发展这么多年,Qt肯定还是有很多优秀之处的,现在很多PC端的应用也都有基于Qt开发的,我们简单看一下Qt的发展历史:

  • 1991–Haavard Nord和Eirik Chambe-Eng开始开发将会支持X11和Windows的Qt
  • 1994–Qt Company成立
  • 1996–KDE项目由MatthiasEttrich创建(Matthias现为诺基亚Qt发展框架工作)
  • 1998 Apr 05Trolltech的程序员在 5 天之内将 Netscape5.0 从Motif移植到 Qt 上
  • 1998 Apr 08 KDE Free Qt 基金会成立
  • 1998 Jul 09 Qt 1.40 发布
  • 1998 Jul 12 KDE 1.0 发布
  • 1999 Mar 04QPL1.0 发布
  • 1999 Mar 12 Qt 1.44 发布
  • 1999 Jun 25 Qt 2.0 发布
  • 1999 Sep 13 KDE 1.1.2 发布
  • 2000 Mar 20 嵌入式Qt 发布
  • 2000 Sep 06 Qt 2.2 发布
  • 2000 Oct 05 Qt 2.2.1 发布
  • 2000 Oct 30 Qt/Embedded 开始使用GPL宣言
  • 2000 Sep 04 Qt free edition 开始使用 GPL
  • 2008 Nokia从Trolltech公司收购Qt,并增加LGPL的授权模式
  • 2011 Digia从Nokia收购了Qt的商业版权,从此Nokia负责Qt on Mobile,,Qt Commercial由Digia负责
  • 根据最新消息,NOKIA已经停止Meltemi系统开发,Qt部门被解散
  • 2012 Aug 09 作为非核心资产剥离计划的一部分,诺基亚宣布将Qt软件业务出售给芬兰IT服务公司Digia。
  • 2013年7月3日,Digia公司Qt开发团队在其官方博客上宣布Qt 5.1正式版发布。
  • 2013年12月11日,Digia公司Qt开发团队宣布Qt 5.2正式版发布。
  • 2014年4月,Digia公司Qt开发团队宣布Qt Creator 3.1.0正式版发布。 *2014年5月20日,Digia公司Qt开发团队宣布Qt 5.3正式版发布。 *2019年,Qt团队宣布最新版5.13版本发布。

现在Qt的最新版本是5.14.2(2020-04-25)。

Qt可以做什么

我们既然要去学习Qt肯定要先去了解一下Qt可以做什么,毕竟我们学习一个框架,而没有任何的用武之地的话,简直是在浪费时间,不过这里大家学习Qt就完全不用担心了,因为可以做的,或者可以开发的,又或者你现在使用的很多应用有很多都是基于Qt开发的。

Qt 虽然经常被当做一个 GUI 库,用来开发图形界面应用程序,但这并不是 Qt 的全部;Qt 除了可以绘制漂亮的界面(包括控件、布局、交互),还包含很多其它功能,比如多线程、访问数据库、图像处理、音频视频处理、网络通信、文件操作等,这些 Qt 都已经内置了。

Qt 是应用程序开发的一站式解决方案,有了 Qt,你就可以高枕无忧了!Qt 本身包含的模块也日益丰富, 一直有新模块和第三方模块加入进来。

大部分应用程序都可以使用 Qt 实现,除了与计算机底层结合特别紧密的,例如驱动开发,它直接使用硬件提供的编程接口,而不能使用操作系统自带的函数库。

1997年,Qt 被用来开发 Linux 桌面环境 KDE,大获成功,使 Qt 成为 Linux 环境下开发 C++ GUI 程序的事实标准。

下面的程序都使用 Qt 开发:WPS、YY语音、Skype、豆瓣电台、虾米音乐、淘宝助理、千牛、暴雪的战网客户端、VirtualBox、Opera、咪咕音乐、Google地图、Adobe Photoshop Album 等。

Linux 也是嵌入式的主力军,广泛应用于消费类电子、工业控制、军工电子、电信/网络/通讯、航空航天、汽车电子、医疗设备、仪器仪表等相关行业。

Qt 虽然也支持手机操作系统,但是由于 Android 本身已经有 Java 和 Kotlin,iOS 本身已经有 Objective-C 和 Swift,所以 Qt 在移动端的市场份额几乎可以忽略。

所以说,Qt 可以用于桌面程序开发和嵌入式开发。

Qt有哪些优势

我们既然选择学Qt,那么Qt肯定要有相比其它的框架的一些优势,我感觉下面几个优势代表性非常好:

  • Qt 是基于 C++ 的一种语言扩展 C/C++ 目前还是一种很多人都在学习的语言. Qt的好处就在于Qt本身可以被称作是一种 C++ 的延伸。Qt 的类都是用 C++ 写出来的。这也就是说, Qt 本身已经继承了C++的快速、简易、面向对象等许多的优点。

  • Qt 具有非常好的可移植性 Qt不只是可以在 Linux 中运行,也同样可以运行在 Microsoft Windows 、Mac OS X等多种不同的平台中。这也意味者,利用 Qt编写出来的应用程序,在几乎不用修改的情况下,就可以同时在多种平台中运行。 Qt的应用非常之广泛,从 Linux到 Windows ,从 x86 到 Embedded 等都有大量Qt应用的成功范例。

  • Qt 支持跨平台构建 编写用于多平台的软件是单调乏味的,且可能随时出现错误。维护编制文件更是如此,尤其是当不同的编译器和平台组合需要若干个编制文件时。通过qmake工具,Qt能够很好地面对这一挑战。这个工具可以为目标平台生成准确无误的编制文件。

  • Qt 是开源软件 Qt产品提供的是采用双重授权的软件许可模式。在该双重授权模式下,Qt产品不仅可在获得商业许可下针对专利软件开发,而且还可以在GPL(通用公共许可证,版本2或版本3)下用于开发免费和开源软件。

  • Qt 架构健壮,性能强大 Qt 已由成千上万商业与开放源应用程序员,在多个操作系统与编译器上进行了测试,奠定了高性能应用程序的基础。

    此外,Qt运行时无需依赖“虚拟器”,模拟层或大容量的运行时间环境。它如本地化的应用程序一样,能够直接写入低级的图形函数,因而使用Qt开发的应用程序能以源代码速度执行

  • Qt 使用起来简便高效 Qt统一的跨平台API 让程序员们集中精力致力于可增值的技术革新,而无须担心维护和管理现有应用程序多版本的基础结构与界面。 因此Qt开发人员仅需要学会一种API来写入应用程序,该程序便可在任何地方运行。

    Qt Software投入了相当大的努力使得Qt使用起来尽可能简单和直观。来自世界各地的客户反馈普遍认为Qt编程简单而有趣;而对于商务应用而言,Qt可以转换为更多的功能,并且在保持质量性能的情况下,只需更少的维护工作。

Qt 支持哪些开发语言

官方支持的开发语言

  • C++
  • Python
  • Qt QML

社区支持的开发语言

  • Rust
  • Golang

Qt Quick 与 Qt Widgets开发方式如何选择

目前Qt比较主流开发方式有Qt Quick和Qt Widgets,后者完全使用C++开发,前者使用QML和C++混编开发,关于两者如何选择和有何区别可以去B站查看Qt软件官方账号发布的视频:
本系列教程开发方式使用Quick开发方式。

Qt官方网站



263

顶一下

刚表态过的朋友 (263 人)

相关阅读

微雪官网|产品资料|手机版|小黑屋|微雪课堂. ( 粤ICP备05067009号 )

GMT+8, 2024-4-25 22:23 , Processed in 0.013222 second(s), 13 queries .

返回顶部