作者:霍亚飞 程梁 出版:北京航空航天大学出版社
▍内容简介
◆本书是基于Qt 5的QML和Qt Quick入门书籍,详细介绍了QML语言的语法和编写Qt Quick程序需要用到的基本知识点。本书内容主要包括Qt 5的介绍、QML.语法、Qt Quick基础知识以及在图形动画、数据处理和多媒体方面的应用等。
本书侧重讲解Qt 5中QML和Qt Quick的内容,适合希望学习QML编程以及希望使用Qt开发移动应用的读者。对于没有任何Qt基础或者想学习Qt C++编程的读者,可以参考《Qt Creator快速入门(第2版)》一书。
◆本书内容源于作者的网络博客,作者会在网上及时解答读者疑问、更新修改内容、发布相关教程和配套资料,敬请读者关注Qter开源社区(www.qter.org)的相关内容。
▍Qt的历史
Qt是由奇趣科技公司(Trolltech)的两位创始人Haavard Nord和Eirik Chambe-Eng合作开发而成的,首个版本完成于1991年,而第一个商业版本则是在1995年才正式推出。
Qt的名字来源于一个有趣的故事。当时这个工具之所以取名为Qt,是因为在Haavard的Emacs字体中,字母Q看起来非常漂亮;而字母t的灵感则来源于当时的另外一个工具Xt(X toolkit)的取名。
最初Qt只有两个版本:适用于类Unix平台的Qt/X11和适用于Windows平台的Qt/Windows。其中,Windows版本只有专利授权,这意味着如果需要将使用Qt/X11编写的开源应用移植到Windows平台,必须购买专利授权。
2001年底,奇趣科技发布Qt 3.0,从这个版本起,Qt增加了对Mac OS X平台的支持。不过,直到2003年6月之前,Mac OSX版本的Qt也只有专利授权。当Qt 3.2发布的时候,奇趣科技才增加了Mac OSX平台的GPL授权。
2005年6月28日,奇趣科技发布了Qt 4.0。这是一个全新的版本,与之前的3.x系列不仅二进制不兼容,甚至API也不兼容。这在一定程度上使人颇有微词。
2008年6月17日,诺基亚公司宣布以公开竞购的方式收购奇趣科技,连同奇趣科技旗下的Qt。同年,诺基亚将Qt的名字更改为Qt Software,然后又更改为Qt Devel-opment Framework。在诺基亚的领导下,Qt的工作重心由桌面系统转移至诺基亚旗下的手持设备。2009年5月11日,诺基亚宣布Qt源代码在著名的git托管平台Gito-tious面向公众开放,标志着Qt正式成为面向社区的开源框架。不过,尽管诺基亚承诺Qt开放源代码,但事实上Qt的代码提交与维护仍然牢牢掌握在诺基亚手中。2009年12月1日,Qt 4.6发布,这是第一个移植到Symbian S60平台的版本。
2011年2月,诺基亚宣布放弃自己的Symbian平台,转而投向微软公司的Win-dows Phone平台。一个月之后,诺基亚宣布将Qt的商业授权和专业服务出售给Digia公司。后者启动了Qt Project,同时宣布将努力促使Qt支持Android、iOS和WindowsPhone三大平台,并且继续关注于桌面和嵌入式平台的开发,这意味着Qt正在努力成为一个全平台的开发框架。现在看来,在一定程度上,Digia的确做到了这一点。
Qt 4之后的下一个大的版本Qt 5原计划于2012年6月发布,但是由于诺基亚的政策调整和出售Qt的缘故,直到2012年12月19日,Qt 5.0才正式发布。这是继Qt4之后另一个大的升级。表面看来,Qt 4到Qt 5的改动并不比Qt 3到Qt 4来得激进,但是Qt 5引入了全新的硬件加速图形处理,并且将QML与JavaScript提升到同C++相等的地位。传统的基于C++的Qt Widgets仍将继续支持,但是全新的架构所带来的性能提升则更多作用于QML和JavaScript。
值得一提的是,Qt 5的开发真正由Qt Project社区驱动,现在Qt已经允许诺基亚和Digia之外的开发人员提交并审核代码。
Digia接管Qt业务以后,Qt的开发速度有了明显提升。2013年7月3日,Qt 5.1发布。Qt 5.1除了修改5.0版本的bug之外,更带来了Android和iOS平台的实验性支持。2013年12月12日发布的Qt 5.2版本,则正式引入对Android和iOS平台的支持;同时,
Qt 5.2引入了一个新的场景图像渲染器,针对OpenGL后端提升了矢量绘制的性能,将GPU的占用降至最低。2014年5月20日,Qt 5.3发布。Qt 5.3改进了对iOS平台的支持,并且开始支持WinRT平台。这为Qt成为全平台的开发工具更进一步。
▍书中使用的Qt版本的说明
本书基于Windows平台Qt 5.3.0和Qt Creator 3.1.1版本。它们是本书完稿时的最新版本。为了避免读者使用不同的操作系统而产生不必要的问题,本书采用了常用的Windows 7操作系统。这里要对Qt版本不是很了解的读者说明一下,对于Qt程序开发,无论是在Windows系统下进行开发,还是在Linux系统下进行开发;无论是进行桌面程序开发,还是进行移动平台或者嵌入式平台的开发,只需要编写一次代码,然后分别进行编译就可以了,这就是Qt最大的特点,即所谓的“一次编写,随处编译”。也就是说,读者需要学好本书中Qt的基本内容,然后编写代码,使用Qt不同的版本进行移植、编译即可。
在学习本书时,推荐大家使用指定的Qt和Qt Creator版本,因为对于初学者来说,任何微小的差异都可能导致错误的理解。当然,大家也可以使用其他版本。