1. GUI程序原理分析
1.1 命令行应用程序
- 特点
(1)基于顺序执行结构的可执行程序:按照逻辑顺序从头执行到结束;
(2)程序执行过程中无需与用户产生交互:如ls/gcc
等,程序执行完成后自定结束;
(3)执行后给出最终的运行结果,而并不关系过程。 - 运行模式:固定的开始和固定的结束。
- 使用场景
(1)单任务场合;
(2)无交互或简单交互;
(3)服务器应用场合;
1.2 图形界面应用程序
- 特点
(1)基于消息驱动模型的可执行程序;
(2)程序的执行依赖于用户的交互,实时响应用户操作;
(3)程序执行后一般会主动退出。 - GUI程序开发原理
(1)GUI程序在运行时会创建一个消息队列;
(2)系统内核讲用户操作翻译成对应的程序消息;
(3)程序在运行过程中需要实时处理队列中的消息;
(4)当队列中无消息时,程序处于停滞状态;
- GUI程序开发的本质:
(1)在代码中用程序创建窗口及窗口元素;
(2)在消息处理函数中,根据程序消息做出不同响应。 - 运行模式
- 使用场景
(1)多任务的场合;
(2)强用户交互;
(3)非专业计算机用户;
1.3 图形界面与命令行程序对比
- 当代大型软件产品架构模型
- 特点对比
2. QT介绍
2.1 界面元素
- 面向对象思想开发GUI
(1)操作系统提供了创建用户界面元素所需的函数,但其无法直接映射到界面元素。
(2)将界面元素抽象和封装定义为对应的类,通过创建不同界面元素对象,组合成用户界面。
(3)所有的界面元素都可以看作实际的对象,GUI用户界面由不同类的对象组成。 - QT的本质
(1)QT将GUI细节封装与类的内部,具有跨平台的特性;
(2)QT是遵顼GUI程序开发模式,利用面向对象开发的一套GUI组件库。
2.2 基本介绍
- 调试的基本方法
(1)Log调试法:在代码中可疑处加入打印语句,打印程序状态和关键变量的值;
(2)断点调式法:在代码中可疑处打上断点,需要时可加上条件断点(即条件满足时才暂停)。 .pro
项目描述文件
(1)基本构成
QT += core gui 模块声明
TARGET = text 可执行文件名
TEMPLATE = app 程序模板声明
SOURCES += main.cpp\ 源码文件声明
widget.cpp
HEADERS += widget.h 头文件声明
FORMS 界面文件声明
RC_FILE 资源文件声明
(2)高级变量
INCLUDEPATH 头文件搜索路径
CONFIG 设定项目的配置信息和编译选项
LIBS 添加第三方库文件
DEFINES 定义编译宏
(3).pro文件用于配置和组织整个项目相关文件,本质为Makefile,不同的系统通过qmake命令都可以生成相应的Makefile。
3. 工程中的概念
(1)构建(build):对项目中的所有文件进行编译,最终生成可执行程序;
(2)Debug版:含有大量调式信息用于调试,占用空间大且运行效率低;
(3)Release版:最终发布的应用程序构建版本,无调试信息运行效率高。