基础概念
信号源:由哪个控价发出的信号
信号的类型:用户进行不同的操作,就可能触发不同的信号.
- 点击按钮,触发信号
- 在输入框中移动光标,触发移动光标的信号
- 勾选一个复选框
信号的处理方式:槽(slot)->函数
Qt中可以使用connect这样的函数,把一个信号和槽关联起来,只要信号触发了,Qt就会自动执行槽函数(本质上就是一个回调函数)
举一个基本例子
假设你在打联盟,玩的是ADC,这个时候打野发了一个打野MISS,这个时候你走回塔下
在这个情境中
信号源:打野
信号类型:敌方打野MISS
信号的处理方式:走回塔下
上述操作过程中,提前把不同的信号的处理方式,一定是先把信号的处理方式准备好,在触发信号
connect函数的用法
这个函数是由QObject提供的静态的成员函数
这个里面有四个参数
sender:信号的发起者
signal:信号类型
receiver:信号的接受者
method:对信号的处理方式
type:连接方式
举一个基本例子
一些常见问题
为什么connect明明要的是一个char*,却能接受一个void*的指针呢?
原因是在Qt5之后,就使用了C++的泛型编程,提供了一个类型萃取器