一. 了解信号和槽
1-1. 信号与槽概念
信号(Signal)可以由一个对象发出,表示某种事件的发生。
槽(Slot)则是可以响应信号的函数或方法,用于处理接收到的信号所代表的事件。
通过将信号与槽进行关联和连接,当信号被发出时,与之相连的槽就会被自动触发执行,从而实现不同对象之间灵活、松散耦合的交互通信。这种机制使得代码的结构更加清晰、可维护性更高,也更便于进行事件驱动的编程。
1-2. 以前面的按钮为列子来了解信号与槽
1-2-1. 事情的起因,按键按下去是无反应的
我做了三个按键,但是三个按键按下去是没有任何的效果,所以我们需要对它进行改造,使其通过我今天学习的内容,使它按下去有对应的反应。
1-2-2. 理清我需要的按键流程
- 在下面我们需要通过connect(发送者,具体信息,接收者,处理器)把它们串起来。
- 信号发送端:发送者+具体信息
- 接受端:接收者+处理器
- 优点:松散耦合,信号发送端与接受端本身是没有关联的,通过connect连接,将两端耦合在一起
二. 找到一些需要的函数
2-1. 需要点击的发送信息的函数signals
所以我们需要找到发送信号signals,从中找到我们需要的点击信号clicked。
找到我们需要的点击信号clicked,顺便了解其他发送信号的意思。
2-1-1. 如果QPushButton没有图1-1这样的可以通过下面的方法寻找
- 第一步找到QPushButton的父类
- 第二步找到signals即可
2-2. 找到槽函数slots
由于自己定义的函数myWidget是没有属于自己的槽函数的,故而去找它的父类QWidget在其中找到我们要的槽函数。
点击进去找到需要的关闭的函数
点击close进去可以看见
2-3. 开始编辑得到想要的效果
找到我们需要的函数以后,开始编辑,方法一与方法二的效果是一样的。
编辑完成以后我们可以点击我自己的按钮就可以关掉窗口了