# QT-信号槽(点击按钮关闭窗口)

​ 其实也就是mfc下的响应是一个意思

 

信号发送者 发送信号 信号接收者 处理信号

就是这样一个流程

那么信号发送者可以是很多的情况这里举例分析一个情况:

 

点击按钮实现关闭窗口:

信号发送者->按钮

发送信号->点击按钮

信号接收者->窗口

处理信号—>关闭窗口

## 发送信号者

```
首先创建控件
QPushButton * btn = new QPushButton(this);
btn->setText("关闭窗口");
btn->move(300,300);
resize(600,600);
```

## 发送的信号

信号的单词是signals

找到要传递的信号在什么位置,是什么东西

 

 

​ 在QPushButton的父类中找到了clicked的信号

## 接受信号者

​ 直接调用this指针好了

## 处理信号的槽函数

然后用connect函数来绑定处理。

槽函数的单词是slots

 

 

```

connect(发送信息者,发送的信号,接受信号者,处理的槽函数)
```

```
connect(btn,&QPushButton::clicked,this,&QWidget::close);
```

## 信号槽的优点:

​ 松散耦合:本来没关联的东西放在一起就连接在一起了