Qt 6: 1-2 简单认识信号和槽

先明确两个概念:
  模态对话框,没关闭它之前不能和其他对话框交互
  非模态对话框,没关闭它能和其他对话框交互
exec()函数自带循环,其后代码不执行,直到关闭该窗口才返回,生成模态对话框
show()函数立马返回,其后代码跟着执行,默认生成非模态对话框。调用setModal(true)可使其生成模态对话框

信号:可以理解为一个动作,例如点击按钮
槽:可以理解为接受信号并执行相对行为的场所,如接收点击按钮的信号,然后打开某个窗口

注:拥有槽的累必须拥有Q_OBJECT宏,继承QOBJECT

使用信号的两种方式:
自动关联
在设计模式中拖入一个按钮,取名Exit
点击工具栏的Edit Signals/Slots或摁F4,进入不见的信号和槽的编辑模式
在这里插入图片描述
摁住按钮拖动至窗口,松开,出现如下界面:
勾选左下角的选项,按钮事件中选择关闭
在这里插入图片描述

这样该按钮就和窗口关闭事件关联起来
或者可以这么做,在Edit Widget模式(即一进设计模式的状态),对按钮右键,选择Go to slot,它会回到代码编辑模式并为你生成好函数声明、空函数体,可以在里面自定义。
若报错未找到匹配的ui_xxx.h文件,说明缺少东西。go to slot要求有ui文件,头文件,ui_xxx.h,.cpp源文件,源文件需包含头文件和ui_xxx.h
在这里插入图片描述

使用connect函数
在需要的地方使用connect函数,假设为按钮:
connect(A, &QPushButton::???, B, C)
A:发送信号的类
&QPushButton:发送什么信号,有宏定义
B:接受信号的类
C:执行的槽,可以是自定义的事件

如果把方法名改为on_A的对象名_信号名,可不用connect函数,变成自动关联

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值