003_QT的诞生和本质
一、 GUI 用户界面元素
二、 面向对象的 GUI 程序设计
由于操作系统绝大多数都是用 C 语言开发的,所以操作系统提供的用于开发 GUI 应用程的 SDK 都是 C 函数,也就是说不能将按钮的概念直接映射到某个C函数上面(操作系统提供的原生函数无法直接映射到界面元素)。
1、面向过程程序设计方法学不适合 GUI 程序设计
2、面向对象程序设计方法学更适合 GUI 程序设计
3、所有的界面元素都可以看作实际的对象
GUI 用户界面是由各不相同的对象组成的
主窗口对象
- 菜单对象
- 按钮对象
- 文本框对象
- 。。。
操作系统提供的只有对应的函数,没有对应的类。因此就需要我们自己来创建对应的 GUI 界面元素类
三、 面向对象的方法创建 GUI 程序
1、先从主函数开始看起,可以看出主函数已经是非常短小精悍
用面向对象的方法看
在第8行创建了一个应用程序对象a。
第10行创建了主界面对象w,并且主界面对象的标题为(Main Window)。
第12行创建了按钮对象b,这个按钮对象b通过第一个参数就和主窗口对象w产生了关联。
第14行显示主窗口。
第16行执行消息循环
2、application类的原型,将 GUI 应用程序里和界面元素无关的部分抽象到application类里面。
声明
定义
3、主窗口类
声明。MainWindow这个类的protec就是拿来封装以前创建主窗口的哪些步骤
发现主窗口又继承另一个类(Widget)
4、Widget类
声明。这个类用来统一所有的用户界面元素,也就是说所有的用户界面元素里面一些公共的特性全部抽象到(Widget)里
回到主窗口类的定义
构造函数用来生成主窗口,生成主窗口对象其实是还是定义主窗口的式样,定义完之后就是创建主窗口
5、按钮类
声明
定义
创建完后调用主窗口的显示函数就可以显示到屏幕上了,其实本质没有变化,只是开发方法(使用面向对象的方法)发生了变化
四、 QT 的本质
1、QT 是利用面向对象方法学开发的一套 GUI 组件库。
2、QT 将不同操作系统 GUI 细节全都封装于类的内部(在不同的类内部还是调用了操作系统提供的原生的函数来创建 GUI 界面元素,这些细节全部被提供的类所封装了,我们无法看到,所以只需要学会使用 QT 里面的类即可)。
3、QT 遵循经典的 GUI 应用程序开发模式。那么在使用 QT 开发GUI应用程序时只需要遵循两点即可。第一点:我们要开发的 GUI 应用程序它长得什么样子,需要哪些界面元素对象,通过这些界面元素对象怎样去组合出我们想要的应用程序界面;第二点:我们如何去将用户的操作映射到某一个函数上。
五、 总结
1、GUI 应用程序开发更适合采用面向对象方法学,所有的界面元素都可以看作实际的对象。
2、QT 将 GUI 细节封装于类的内部,具有跨平台的特性(指的是用 QT 库开发的程序可以在不同的平台上编译出对应的 GUI 应用程序)。