Qt 是一个著名的跨平台的 C++ 应用程序框架,它由 TrollTech 公司在 1991 年发布;2008 年,Nokia 斥资 1.5 亿美元收购 TrollTech,将 Qt 应用于 Symbian 程序开发;2012 年 8 月 9 日,Nokia 将 Qt 以 400 万欧元的价格出售给 Digia。
Qt 提供给应用程序开发者建立图形用户界面 (Graphics User Interface, GUI) 所需的所用功能,Qt 是完全面向对象的,开发者使用 Qt 可以比较轻松的开发跨平台的 GUI 应用程序。
Qt 包含几百个类,这些类包含 C++ 图形库、OpenGL、数据库、网络、脚本库等等,各种类结合起来构成了一个应用程序框架。
程序员可以在Qt基础上建立跨平台的应用程序(菜单、按钮、对话框…)。
Qt 中编程的基本模块称之为组件,组件是用户界面的组成部分,Qt 含有用来创建专业外观的用户界面所需要的完整的一套组件工具。程序员可以通过设置**各个不同组件的属性(形状、位置、颜色等…)**设计用户界面。
当前,有超过 4500 家公司正积极使用 Qt 开发众多的世界领先的商业应用程序。
Google Earth、Skype、Opera、Adobe Photoshop Elements、Peforce Visual Client 等软件都是基于 Qt 写成的。
在 2006 年的第 16 届的 Jolt 大奖上,Qt4 获得了类库、框架和组件类别的 Jolt 生产力奖。
当你在计算机上安装了 Qt,你会看到 Qt SDK、Qt Creator、Qt designer 等等,它们分别是:
- Qt SDK:包含了 Qt 库以及 Qt 的开发工具,是一套完整的开发环境。
- Qt Creator:基于 Qt 构建的一个轻量级 IDE,支持语法高亮、代码补全等功能,是一款轻便实用的 IDE。
- Qt Designer:一个功能强大的 GUI 布局与窗体构造器,能够在所有支持的平台上,以本地化的试图外观与认知,快速开发高性能的用户界面。
Qt 类库是 C++ 类库
这些类或者封装了应用程序编程接口,或者封装了应用程序的概念,或者封装了 OpenGL 特性,或者封装了数据库访问的功能。
Qt 抽象出众多类的共同特性,设计出一些基类作为实现其他类的基础。比如 Qwidget 是能够在屏幕上显示的一切组件的的父类,QMainWindow 继承自 Qwidget,因此 QMainWindow 也能够在屏幕上显示。
封装和继承是 C++ 编程的重要概念,程序员可以结合自己的实际,从适当的 Qt 类中派生出自己的类,封装特定的功能,达到自己的变成目的。
当我们要开发交互式应用程序的时候,我们就需要在应用程序与用户的操作之间进行“通信”。Qt 框架的通信机制叫信号槽机制。
当某个事件发生的之后,比如,按钮检测到自己被点击了一下,它就会发出一个信号(signal),这种信号是没有目的的,类似广播。如果有对象对这个信号感兴趣,它就会使用连接 (connect) 函数,也就是说,用自己的一个函数 (称为槽函数 slot)来处理这个信号。
信号槽机制是 Qt 框架引以为豪的机制之一,熟练使用和理解信号槽,有利于增强我们的技术设计能力。
用 CMake 三连(configure + generate + open project)跑跑示例项目 example,简单看看代码,运行程序看看效果
然后查看教程 QtHello 学会
- 创建 Qt + CMake 项目
- 添加菜单,工具栏,动作
- 信号槽机制
然后查看教程 Qt GDI 学会
- 定制
QtWidget
实现绘制功能 - 内存泄漏检测
std::vector
的使用- 继承与多态