第3课 QT的诞生和本质】的更多相关文章

1. GUI用户界面元素 (1)操作系统提供了创建用户界面元素所需要的函数 (2)各种功能不同的函数依次调用,从而创建出界面元素 (3)操作系统提供的原生函数无法直接映射到界面元素 2. 面向对象的GUI程序设计 (1)GUI应用程序是为了解决非科学计算问题而诞生的 (2)GUI应用程序适用于非专业的日常生活领域 (3)面向过程程序设计方法学不适合GUI程序设计 (4)面向对象程序设计方法学更适合GUI程序设计 3. 另一种眼界 (1)用面向对象方法学看待GUI界面元素 (2)所有界面元素都可以…
有没有发现,在这个主函数里面没有了消息循环了.消息循环到哪里去了呢? 我们知道,每个GUI应用程序都有消息循环,一般都需要将消息循环while那个函数写到main的最后位置.那既然如此,为了代码复用,我们为什么不把它封装起来呢?因此就有了Application这个应用程序类,接下来首先看一下,Application这个类是如何定义的? 一个构造函数,一个exec函数,非常easy.看一下函数的定义: 关键之处:将GUI应用程序里面和界面元素无关的部分全部抽象到一个类中,这个类叫做Applicat…
1. Qt的中IO操作 (1)Qt中IO操作的处理方式 ①Qt通过统一的接口简化了文件和外部设备的操作方式 ②Qt中的文件被看作一种特殊的外部设备 ③Qt中的文件操作与外部设备的操作相同 (2)IO操作中的关键函数接口——IO操作的本质:连续存储空间的数据读写 ①打开设备:bool open(OpenMode mode); ②读取数据:QByteArray read(qint64 maxSize); ③写入数据:qint64 write(const QByteArray& byteArray);…
1. 3种常用的文本编辑组件的比较 单行文本支持 多行文本支持 自定义格式支持 富文本支持 QLineEdit (单行文本编辑组件) Yes No No No QPlainTextEdit (多行普通文本编辑组件) Yes Yes No No QTextEdit (多行富文本编辑组件) Yes Yes Yes Yes 2. Qt中常用文本编辑组件的继承层次图 3. 常用文本编辑组件的内置功能 (1)右键弹出式菜单 (2)快捷键功能:复制.粘贴.剪切等 [编程实验]文本编辑组件的对比实验 //ma…
1. QT Creator工程管理(一个工程包含不同类型的文件) (1).pro项目文件 (2).pro.user用户配置描述文件 (3).h头文件 (4).cpp源文件 (5).ui界面描述文件 (6)资源文件(图片.音频等) 2. .pro项目描述文件 2.1 .pro项目描述文件的基本构成 (1)#:注释起始符 (2)QT:模块声明 (3)TARGET:可执行文件名 (4)TEMPLATE:程序模板声明 (5)SOURCES:源码文件声明 (6)HEADERS:头文件声明 (7)FORMS…
1. 多页面切换组件(QTabWidget) (1)能够在同一个窗口中自由切换不同页面的内容 (2)是一个容器类型的组件,同时提供友好的页面切换方式 2. QTabWidget的使用方式 (1)在应用程序中创建QTabWidget的对象 (2)将其他QWidget对象加入该对象中.但QTabWidget对象每次只能加入一个QWidget对象,同时将成生成一个新的页面. (3)将多个组件加入到同一个QTabWidget页面的解决方案 ①创建容器类型的组件对象 ②将多个子组件在容器对象中布局 ③将容…
1. QPalette类 (1)QPalette类提供了绘制QWidget组件的不同状态所使用的颜色. (2)QPalette对象包含了3个状态的颜色描述 ①激活颜色组(Active):组件获得焦点使用的颜色搭配方案 ②非激活颜色组(Inactive):组件失去焦点使用的颜色方案 ③失效颜色组(Disabled):组件处于不可用状态使用的颜色方案 2.QPalette类中颜色组用途 (1)QPalette类中的颜色组定义了组细节的颜色值 (2)QPalette::ColorRole中的常量值用于…
1. 事件的传递过程 (1)操作系统检测到用户动作时,会产生一条系统消息,该消息被发送到Qt应用程序 (2)Qt应用程序收到系统消息后,将其转化为一个对应的QEvent事件对象,并调用QObject::event()将其分发出去. (3)事件对应被分发到当前正在操作的窗口部件上,该窗口部件会调用QWidget::event()函数来处理,然后,在这个函数内部又会调用其他的子函数(如KeyPressEvent或mouseReleaseEvent)来进行具体的处理. (4)event函数处理完后,可…
1. GUI程序原理回顾 (1)图形界面应用程序的消息处理模型 (2)思考:操作系统发送的消息如何转变为Qt信号 2. Qt中的事件处理 (1)Qt平台将系统产生的消息转换为Qt事件 ①Qt事件是一个QEvent的对象 ②Qt事件用于描述程序内部或外部发生的动作 ③任意的QObject对象都具备事件处理的能力 (2)GUI应用程序的事件处理方式 ①Qt事件产生后立即被分发到QWidget对象 ②调用QWidget::event(QEvent*)进行事件处理 ③event()根据事件类型的不同,调…
1. 历史遗留问题和解决方案 (1)历史遗留问题 ①C语言不支持真正意义上的字符串 ②C语言用字符数组和一组函数实现字符串操作 ③C语言不支持自定义类型,因此无法获得字符串类型 (2)解决方案 ①从C到C++的进化过程中引入了自定义类型 ②在C++中可以通过类完成字符串类型的定义 2. 标准库STL (1)STL库 ①STL是意义上需要与C++一同发布的标准库 ②STL是一套以模板技术完成的C++类库 ③STL中包含了常用的算法和数据结构 ④STL中包含了字符串类 (2)Qt VS STL ①S…