Qt是什么?Qt可以做什么?学习Qt需要有哪些基础?
在介绍Qt使用前,先从以下几个方面简单了解一下
Qt是什么?
Qt是一个跨平台的 C++ 开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序,当然也可以开发不带界面的命令行(Command User Interface,CUI)程序。Qt 支持的操作系统有很多,例如通用操作系统 Windows、Linux、Unix,智能手机系统 Android、iOS、WinPhone, 嵌入式系统 QNX、VxWorks 等等。
Qt可以做什么?
Qt 虽然经常被当做一个 GUI 库,用来开发图形界面应用程序,但这并不是 Qt 的全部;Qt 除了可以绘制漂亮的界面(包括控件、布局、交互),还包含很多其它功能,比如多线程、访问数据库、图像处理、音频视频处理、网络通信、文件操作等,这些 Qt 都已经内置了。
目前很多应用程序都是qt开发的:比如WPS、YY语音、Skype、豆瓣电台、虾米音乐、淘宝助理、千牛、暴雪的战网客户端、VirtualBox、Opera、咪咕音乐、Google地图、Adobe Photoshop Album 等
总起来说,Qt 主要用于桌面程序开发和嵌入式开发。
学习Qt需要有哪些基础?
Qt 是纯 C++ 开发的,所以学好 C++ 非常有必要,对于不了解 C++ 的读者,我建议先阅读《C语言教程》,再阅读《C++教程》。C++ 是在C语言的基础上发展起来的,学完C语言就学了 C++ 的一半了。
Qt发展溯源?
1991:Haavard Nord和Eirik Chambe-Eng开始开发将会支持X11和Windows的Qt 1994:Qt Company成立,在这之后改名为Trolltech,中文名是奇趣科技。 1995:Qt的第一个商业版本发布,Qt正式步入商业化。但是Qt一直分为商业版和开源版两个版本,商业版由Qt公司提供技术支持,开源版可以奉行Qt公司的规则来免费使用。 2000:Qt嵌入式版本发布标志着Qt多平台开发已经由多窗口向着单窗口发展。
同年,Qt全平台使用GPL协议,GPL协议指如果你开发了新程序,每个人都能在遵守条款的基础上对它进行修改和重新发布。从客观上讲使用这一协议限制了Qt的发展。 2008:诺基亚公司宣布通过公开竞购的方式收购奇趣公司,Qt技术被诺基亚公司收入囊中,诺基亚也根据自己移动平台来规划Qt的发展。
2009:从发布的Qt 4.5 起,诺基亚为Qt增添开源LGPL授权选择,这一协议直接让Qt完全成为大众化的代码库,是一种进步的表现。同年,诺基亚Qt Software 宣布Qt源代码库面向公众开放,Qt 开发人员可通过为 Qt 以及与 Qt 相关的项目贡献代码、翻译、示例以及其他内容,协助引导和塑造 Qt未来的发展。为了便于这些内容的管理,Qt Software 启用了基于Git 和 Gitorious 开源项目的Web 源代码管理系统。
2011:Digia从Nokia收购了Qt的商业版权,从此Nokia负责Qt on Mobile,Qt Commercial由Digia负责 2012:作为非核心资产剥离计划的一部分,诺基亚宣布将Qt软件业务出售给芬兰IT服务公司Digia。 2014:跨平台集成开发环境Qt Creator 3.1.0正式发布,实现了对于iOS的完全支持,新增WinRT、Beautifier等插件,废弃了无Python接口的GDB调试支持,集成了基于Clang的C/C++代码模块,并对Android支持做出了调整,至此实现了全面支持iOS、Android、WP,它提供给应用程序开发者建立艺术级的图形用户界面所需的所有功能。
Qt优势?
1、跨平台。我们编写的一套程序,若没有极其特殊的要求,通过更改编译步骤,是可以在其他嵌入式或者linux界面上被支持的,所以Qt可以算是MFC的一个超集。这对于很多嵌入式程序员来说可以说是一个福利。
2、面向对象。模块化程度高,重用性好;使用相对安全的信号与槽机制来代替回调函数,各个函数之间的协调更加灵活。
3、丰富的API。我们所需要的库,在其API中都可以找到,并且有很高的集成度,不仅速度快并且简单易用。
4、帮助文档丰富。我们在使用库函数时,并不是每个函数都可以清楚记得作用及用法,此时Qt的帮助文档可以帮助我们解决此问题 5、Qt支持2D/3D图形渲染,并且支持OpenGL。
相关推荐HOT
更多>>unity图集合并成图片
Unity图集合并成图片是一种将多个小图片合并成一个大图片的技术。这种技术在游戏开发中非常常见,可以有效地减少内存占用和提高渲染效率。我们...详情>>
2023-08-28 18:07:44unity向量旋转得另一向量
Unity中的向量旋转是一项常见的操作,可以通过使用旋转矩阵或四元数来实现。以下是关于如何在Unity中旋转一个向量得到另一个向量的详细解释。在...详情>>
2023-08-28 18:07:42unity哪个版本免费
Unity是一款强大的游戏开发引擎,提供了许多功能和工具,可以帮助开发者轻松创建高质量的游戏。关于Unity的版本免费问题,我将为你详细解答。Un...详情>>
2023-08-28 18:07:42unity对象池怎么写
Unity对象池是一种常用的优化技术,用于管理和重复利用游戏中的对象,以减少内存分配和销毁的开销。在Unity中,可以通过编写一些代码来实现对象...详情>>
2023-08-28 18:07:41