(四)初探信号与槽

Qt中封装了具体操作系统的消息机制、遵循经典的GUI消息驱动事件模型(程序中将具体消息映射到指定的函数,当消息触发时,指定函数被调用)

 

信号与槽(Qt中的核心机制)概念:

信号:由操作系统产生的消息

:程序中的消息处理函数

连接:将系统消息绑定到消息处理函数

 

Qt消息处理机制模型:


信号到槽的连接必须发生在两个Qt类对象之间,用于对象之间的通信

 

connect函数

bool QObject::connect ( const QObject* sender, const char * signal, const QObject * receiver,const char * method,Qt::ConnectionType type =Qt::AutoConnection ) [static]

sender发送对象 signal消息名 receiver接收对象 method接收对象的成员函数(消息处理函数)

由函数可知:

在Qt中消息用字符串进行描述

connect函数在消息名和处理函数之间建立映射

注:在指定消息名与消息处理函数名时必须使用宏SIGNAL 与宏SLOT

 

自定义槽规则:

1、只有QObject的子类才能自定义槽

2、定义槽的类必须在类声明的私有声明区域声明宏Q_OBJECT

3、在类中声明槽函数时必须使用关键字slots

4、槽与所处理的信号在函数签名上必须一致

5、关键字SIGNAL与SLOT中的名称可以包含参数类型,但不能包含具体参数名

 

编译时如果报错:Object::connect No such slot….

1、检查类是否继承于QObject

2、检查类的声明的私有声明处是否声明了宏Q_OBJECT

3、检查类中是否使用slots关键字进行槽函数的声明

4、检查槽函数的名称是否拼写错误

5、重新执行qmake

 

 

 声明:

此文根据 狄泰学院唐老师的《QT实验分析教程》创作

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值