Qt学习(1)信号和槽

信号和槽
以我自己的理解来说,信号和槽就是一个响应机制,我们提前将信号和槽连接起来,当信号被触发时,槽函数就被调用。举个例子来说,就相当于你听到自己肚子叫了,你就知道你饿了,所以就去吃饭,而肚子叫就可以看作一个信号,去吃饭就可以看成与其相连的槽函数。
1:信号和槽的连接接函数:connect
2:函数参数
2.1:参数1 信号的发送者
2.2:参数2 发送的信号(函数地址)
2.3:参数3 信号的接收者
2.4:参数4 处理信号的槽函数(函数地址)
3:简单案例
实现点击按钮 窗口关闭
创建按钮 QPushButton *btn = new QPushButton(“关闭”,this);
连接信号和槽connect(btn,&QPushButton::clicked,this,&QWidget::close);

自定义信号和槽
1:自定义信号
1.1:要写在signals下
1.2:返回值为void
1.3:只需要声明,不需要实现
1.4:可以有参数,可以重载
2:自定义槽函数
2.1:写在public slot下或者public下或者是全局函数
2.2:返回值为void
2.3需要声明,也需要实现
2.4:可以有参数,也可以重载
3:可以用emit触发自定义信号

当自定义信号和槽函数出现重载时
1:需要利用函数指针,来指向正确的函数地址
例如 void(Teacher::*tSignal)(QString) = &Teacher::hungry;
2:用qDebug输出时,如果输出的是QString类型,会自带" ",不想要双引号时可以将QString类型转为char *
2.1:先用.toutf8()转为QByteArray
2.2:再用.data()转为char *
3:信号可以连接信号
4:断开信号函数为disconnect

注:Qt4版本信号槽连接函数写法
connect(信号的发送者,发送的信号 SIGNAL(信号),信号的接收者,槽函数SLOT(槽函数))
优点:参数直观
缺点:编译器不会检测参数类型

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值