软件简介

Qt 是一种更快,更智能的方式来为多个屏幕创建创新的设备、现代用户界面和应用程序。它是一个跨平台的 C++ 应用程序开发框架。它提供给开发者建立图形用户界面所需的功能,广泛用于开发图形用户界面程序,也可用于开发非图形用户界面(比如命令行界面)程序。Qt 是完全面向对象的,很容易扩展,并且允许真正地组件编程。

基本上,Qt 同 X11 上的 GTK、Motif、Openwin 和 Windows 上的 MFC,OWL,VCL,ATL 是同类型的东西,但是 Qt 支持更多的平台(包括 WindowsGNU/LinuxMac OS XAndroidiOSWinCEUnix 家族等),面向对象且模块化程度更高(Qt 提供了一种称为 signals/slots 的安全类型来替代 callback,这使得各个元件 之间的协同工作变得十分简单)。

丰富的 API(Qt 包括多达 250 个以上的 C++ 类,还替供基于模板的 collections, serialization, file, I/O device, directory management, date/time 类。甚至还包括正则表达式的处理 功能),支持 2D/3D 图形渲染支持 OpenGL、大量的开发文档、XML 支持等。

Qt 的特点

  • 优良的跨平台特性
  • 支持面向对象
  • 丰富的 API
  • 支持 2D/3D 图形渲染,支持 OpenGL
  • 大量的开发文档
  • XML 支持

我们所使用的 Qt,确切地说也就是它的 GUI 编程部分。C++ 的 GUI 编程同 Java 不同:GUI 并不是 C++ 标准的一部分。所以,如果使用 Java,那么你最好的选择就是 AWT/Swing,或者也可以使 SWT/JFace,但是,C++ 的 GUI 编程给了你更多的选择:wxWidWget、GTK++ 以及 Qt。

Qt Creator

Qt Creator 是一个用于 Qt 开发的轻量级跨平台集成开发环境。Qt Creator 可带来两大关键益处:提供首个专为支持跨平台开发而设计的集成开发环境,并确保首次接触 Qt 框架的开发人员能迅速上手和操作。即使不开发 Qt 应用程序,Qt Creator 也是一个简单易用且功能强大的集成开发环境。Qt Creator 包含了一套用于创建和测试基于 Qt 应用程序的高效工具,包括:

  • C++ 代码编辑器
  • 上下文感知帮助系统
  • 可视化调试器
  • 源代码管理
  • 项目和构建管理工具

Qt Linguist 被称为 Qt 语言家。它的主要任务只是读取翻译文件、为翻译人员提供友好的翻译界面,它是用于界面国际化的重要工具。 Qt Linguist 工具从 4.5 开始可以支持 Gettext 的 PO 文件格式。

Qt 和智能手机

Qt 目前支持主流的 Android、iOS、WinPhone 等智能机操作系统。MeeGo 是基于 Qt 开发的操作系统,由于被诺基亚抛弃了, 只剩一代绝版诺基亚 N9 手机。诺基亚手机部门出售给微软之后,大部分诺基亚手机系统开发人员都被遣散了。

原来诺基亚的一部分人成立新的 Jolla(卓蓝)公司,发布了 MeeGo 的衍生版智能手机系统 Sailfish(旗鱼),相应的手机和平板也发布开卖了。另一拨人投靠了 Tizen(泰泽),Tizen 是英特尔和三星力推的智能手机系统,该系统整合了 Limo 和 MeeGo,因为 MeeGo 系统被诺基亚抛弃,英特尔其实是被出卖了,所以只能联合三星重造智能手机系统 Tizen。

目前基于 Tizen 的首款手机三星 Z1 在印度上市了。在 Tizen 阵营,国内有中兴、百度涉及了。 Qt 公司有专门针对移动开发的商业版本,20 欧元或 25 美元一个月。不做商业可以无视这个,用开源版本也是可以开发如 Android、iOS、WinPhone 应用的。

应用范围

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

Qt 是应用程序开发的一站式解决方案,有了 Qt,你就可以高枕无忧了!Qt 本身包含的模块也日益丰富, 一直有新模块和第三方模块加入进来。 大部分应用程序都可以使用 Qt 实现,除了与计算机底层结合特别紧密的,例如驱动开发,它直接使用硬件提供的编程接口,而不能使用操作系统自带的函数库。

下面的软件都使用 Qt 开发:WPS、YY 语音、Skype、豆瓣电台、虾米音乐、淘宝助理、千牛、暴雪的战网客户端、VirtualBox、Opera、咪咕音乐、谷歌地图、Photoshop Album 等。 Linux 也是嵌入式的主力军,广泛应用于消费类电子、工业控制、军工电子、电信 / 网络 / 通讯、航空航天、汽车电子、医疗设备、仪器仪表等相关行业。

Qt 虽然也支持手机操作系统,但是由于 Android 本身已经有 Java 和 Kotlin,iOS 本身已经有 Objective-C 和 Swift,所以 Qt 在移动端的市场份额几乎可以忽略。总起来说,Qt 主要用于桌面程序开发和嵌入式开发。