QT从入门到实战x篇_05_信号和槽1:Qt中自带的信号和槽函数的使用方法

接上文:QT从入门到实战x篇_xx_对象树及坐标系
本篇主要讲Qt中自带的信号和槽函数的使用方法
1. 怎样将触发与执行连接起来呢?
首先讲一个众所周知的故事:人摩擦神灯出灯神的故事
在这里插入图片描述
这里面人是发出摩擦信号的对象,神灯是发出出灯神的对象
对于程序我们有一下需求:点击我的按钮 关闭窗口
在这里插入图片描述
这个需要使用到:connect函数将发出信号的对象与执行命令的对象连接起来。
连接(connect)函数意思是,将想要处理的信号和自己的一个函数(称为槽(slot))绑定来处理这个信号。也就是说,当信号发出时,被连接的槽函数会自动被回调。这就类似观察者模式:当发生了感兴趣的事件,某一个操作就会被自动触发。
2. connect()函数最常用的一般形式:

connect(sender, signal, receiver, slot);

参数解释:

  • sender:发出信号的对象
  • signal:发送对象发出的信号
  • receiver:接收信号的对象
  • slot:接收对象在接收到信号之后所需要调用的函数(槽函数)
    信号槽的优点,松散耦合,信号的发送端和接收端本身是没有联系起来的,通过connect将两端耦合起来。
    3. 怎样实现点击一个按钮实现关闭界面的功能?
    从上边可以知道,你需要找到对象和相应的信号和槽函数
    (1)那么系统自带的信号和槽通常如何查找呢?
    这个就需要利用帮助文档了,在帮助文档中比如我们上面的按钮的点击信号,在帮助文档中输入QPushButton,首先我们可以在Contents中寻找关键字 signals,信号的意思,但是我们发现并没有找到,这时候我们应该想到也许这个信号的被父类继承下来的,因此我们去他的父类QAbstractButton中就可以找到该关键字,点击signals索引到系统自带的信号有如下几个:
    在这里插入图片描述
    这里的clicked就是我们要找到,槽函数的寻找方式和信号一样,只不过他的关键字是slot。
    (2)代码内容
//需求 点击我的按钮 关闭窗口
//参数1 信号得发送者 参数2 发送的信号(函数的地址) 参数3 接受者 参数4 处理的槽函数(函数地址)
connect(myBtn,&QPushButton::clicked,this,&QWidget::close);

//当接收者为this时也可以写成如下形式,即将this省略
connect(myBtn,&QPushButton::clicked,&QWidget::close);

(3)运行结果
运行之后就会看到,点击对应的按钮,窗口就会关闭。
4.学习视频地址:信号和槽1:Qt中自带的信号和槽函数的使用方法

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十月旧城

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值