Qt 信号槽
1.信号槽是啥~~ 尤其是和 Linux 中的信号进行了对比(三要素)
1) 信号源
2) 信号的类型
3)信号的处理方式
2.信号槽 使用
connect
3.如何查阅文档.
一个控件,内置了哪些信号,信号都是何时触发
一个控件,内置了哪些槽,槽都是什么作用.
很有可能需要的信号槽,还得到这个类的父类/爷爷类/祖宗类去进行查询~~
4.自定义槽函数
本质上就是自定义一个普通的成员函数
还可以让 Qt Creator 自动生成.(虽然没有显式 connect,但是可以通过函数名字特定规则来完成自动连接)
怎么方便怎么来,怎么快速怎么来~
5自定义信号.
信号本质就是成员函数.(函数的定义是 Qt 自己生成的,咱们只需要写函数声明)
signals: 自定义关键字中
emit 来完成信号的发射 (emit 也可以省略)
6.信号和槽还可以带有参数
发射信号的时候,把参数传递给对应的槽.
信号的参数和槽的参数要一致~~
1) 类型匹配
2)个数,信号的参数要多于槽的参数
7.信号槽存在的意义
解耦合
多对多效果.(非常类似于 mysql 中的多对多的)
演示了信号槽多对多连接的情况~~
高耦合:一个模块对另一个模块影响很大
低耦合:一个模块对另一个模块影响很小
高内聚:写代码的时候某个功能点的代码都被集中放在一起了~~
低内聚:写代码的时候,实现某个功能点,围绕这个功能的相关代码被放到整个项目的各个地方
8.disconnect 使用方式
9.lambda 表达式,简化槽函数的定义
像 Qt 这样的框架,里面涉及到的很多机制
和 编程语言/数据结构/操作系统/网络/数据库 基础知识 有关联关系的.
很多面试 Qt 的题目,也是和上述 C++,数据结构,系统网络基础知识是相关的