周志洋

个人站

持续学习 才能不被淘汰


Qt学习笔记(1)-Qt介绍

什么是Qt

Qt是一个针对桌面、嵌入式、移动设备的一个跨平台的应用程序开发框架,支持的平台包括Linux、OS X、Windows、VxWorks、QNX、Android、iOS、BlackBerry(黑莓)、Sailfish OS(旗鱼操作系统)等。
Qt 1991年由Trolltech-奇趣科技(成立于1994年)开发,2008年,Trolltech被Nokia收购,2012年,Qt被Digia收购。
Qt是基于C++编写的框架,它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。预处理器,MOC(全称:Meta-Object Compiler-元对象编译器)用于扩展C++,如:信号和槽的特性。在编译之前,先使用MOC分析Qt扩展的C++源文件(检测是否包含Q_OBJECT宏),然后生成符合C++标准的源文件(新文件名将会由moc_加上原文件名构成)。因此框架本身和应用程序/库使用它能被任何符合标准C++的编译器(像Clang、GCC、 ICC、MinGW 和MSVC)所编译。

发展史

Qt的第一个商业版本于1995年推出,随后Qt的发展就很快了,下面是Qt发展史上的一 些里程碑,从之前的Qt1.x开始到现在的Qt5.x。

Qt1-3

版本 发布日期
1.40 10 July 1998
1.41 2 October 1998
1.42 19 December 1998
1.44 13 March 1999
2.0 26 June 1999
2.1 13 April 2000
2.2 7 December 2000
2.3 8 March 2001
3.0 16 October 2001
3.1 14 November 2001
3.2 24 July 2003
3.3 5 February 2004

Qt4

Trolltech在2005年6月28发布了Qt4.0,介绍了框架的五个新技术:

  • 一套模板容器类
  • 为item views提供了一套模型 - 视图 - 控制器体系结构
  • 二维绘图框架
  • 为低级文本布局提供了Unicode文本渲染器的公共API
  • 基于Action的MainWindow,包括:工具栏,菜单和停靠体系
版本 发布日期 新特性
4.1 20 December 2005 推出集成SVG微小的支持,一个PDF的后端Qt打印系统,以及其他一些功能。
4.2 4 October 2006 介绍了Windows Vista的支持,部件的CSS样式支持,以及QGraphicsView框架-在屏幕上高效渲染成千上万个2D对象,以取代Qt3.x中的QCanvas类。
4.3 30 May 2007 改进了Windows Vista支持,改进了OpenGL引擎、SVG文件的生成,增加了QtScript(基于QSA的ECMAScript脚本引擎)。
4.4 6 May 2008 特性包含了改进multimedia的支持(使用Phonon),增强XML支持,集中共享内存的IPC框架,以及WebKit集成。
4.5 3 March 2009 主要包括功能有QtCreator,改进图形引擎,WebKit的集成,OpenDocument格式写入支持和新的许可选项,以及OS X Cocoa框架的支持。
4.6 1 December 2009 新的API框架-动画、手势、多点触控。支持Symbian、Windows 7和Mac OS X 10.6,支持扩展一些Unix系统。也取得了整体性能的改进。
4.7 21 September 2010 QML 和 Qt Quick
4.8 15 December 2011 Qt的平台抽象化,支持单线程OpenGL,多线程HTTP,优化了文件系统访问。

Qt5

Qt5于2012年12月19正式发布,这个新版本标志着平台的重大变化,硬件加速的显卡,QML和JavaScript发挥了重要作用。传统的C++ - 仅QWidgets继续得到支持,但没有从新体系结构的性能改进中受益,Qt5带来了速度及用户界面上的显著改进,Qt5开发框架移动至qt-project.org。外部开发者可以为Digia公司提交补丁,并让他们审查。

版本 发布日期 新特性
5.0 19 December 2012 对Qt4.x进行一系列重大改革。完成Wayland的支持。
5.1 3 July 2013 新模块以及Android和iOS实验性的支持技术预览。
5.2 12 December 2013 第一个官方支持Android和iOS的版本。
5.3 20 May 2014 集中于稳定性和可用性
5.4 10 December 2014 完整的WinRT和Windows Phone支持。介绍基于Chromium的Qt WebEngine内部组件,将在未来的版本中取代QtWebKit。动态的GL图形切换在Windows(ANGLE或OpenGL)后台,本地化的“外观和感觉”在QtQuick的控制在Android平台的后端,引入Qt WebChannels提供QObject到WebSockets的桥梁。最初仅使用Qt WebKit的集成,但还正在5.5下进行Qt WebEngine集成
5.5 1 July 2015 Qt5.5根据官方网站提供的功能:新模块: Qt 3D、Qt Canvas 3D、Qt Location。过时的模块的:Qt WebKit、Qt Declarative (Qt Quick 1)、Qt Script。蓝牙API的最终版本,新的视频过滤框架,Camera和QML MediaPlayer改善iOS,适用于Linux的NFC,SSL/TLS改进Qt Network
5.6 Alpha release: 8 September 2015 Final release plan: 8 December 2015 值得注意的改进:Qt Core:一些性能改进,包括减少动态性能的内存使用情况和性能最佳化的QString Qt Network:支持HTTP重定向 Qt GUI:改进了跨平台的OpenGL ES3.0和3.1 Qt Multimedia:添加QML类型播放列表 Qt WebEngine:基于Chromium 45,自定义URL方案的API,拦截和阻止网络请求,并跟踪或阻止Cookie QtQML:减少内存消耗 嵌入式平台:支持Intel Atom-based NUCs 过时的模块:Qt Script、Qt Enginio 已删除模块:Qt WebKit, Qt Declarative (Qt Quick 1)

平台支持

Qt支持下述平台:

  • MS/Windows - 95、98、NT4.0、ME、2000、XP 、Vista、Win7、win8、win2008、win10
  • Unix/X11-Linux、SunSolaris、HP-UX、CompaqTru64 UNIX、IBMAIX、SGI IRIX、FreeBSD、BSD/OS和其它很多X11平台
  • Macintosh -Mac OS X
  • Embedded - 有帧缓冲(framebuffer)支持的嵌入式Linux平台,Windows CE
  • Symbian、Symbian^3、Symbian Anna、Symbian Belle、MeeGo

优点

Qt同X Window上的 Motif、Openwin、GTK 等图形界面库和 Windows平台上的 MFC、OWL、VCL、ATL是同类型的东西,但是 Qt 具有下列优点:

  • 优良的跨平台特性:

    Qt支持下列操作系统: Microsoft Windows 95/98, Microsoft Windows NT, Linux, Solaris, SunOS, HP-UX, Digital UNIX (OSF/1, Tru64), Irix, FreeBSD, BSD/OS, SCO, AIX, OS390,QNX 等等。

  • 面向对象

    Qt 的良好封装机制使得 Qt 的模块化程度非常高,可重用性较好,对于用户开发来说是非常 方便的。 Qt 提供了一种称为 signals/slots 的安全类型来替代 callback,这使得各个元件 之间的协同工作变得十分简单。

  • 丰富的 API

    Qt包括多达250个以上的C++类,还替供基于模板的collections、serialization、 file、I/O device、 directory management、date/time 类。甚至还包括正则表达式的处理功能。

  • 支持 2D/3D 图形渲染,支持 OpenGL

  • 大量的开发文档

  • XML 支持


转载请注明:周志洋的博客 » Qt学习笔记(1)-Qt介绍

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦