Qt深入浅出(五)信号与槽机制

        信号和槽是一种高级接口,应用于对象之间的通信,它是QT的核心特性,也是QT区别于其它工具包的重要地方。

​ 信号和槽是QT自行定义的一种通信机制,它独立于标准的 C++ 语言,是标准C++的扩展。因此要正确的处理信号和槽,必须借助一个称为 moc(Meta Object Compiler)的QT工具,一般叫做元对象编辑器,该工具是一个C++ 预处理程序,它为高层次的事件处理自动生成所需要的附加代码。

1 初步认识信号

​ 当某个信号对其客户或所有者发生的内部状态发生改变,信号被一个对象发射。例如QPushButton对象被鼠标点击后,发射出信号clicked()。

​ 信号的声明是在头文件中进行的,QT 的 signals 关键字指出进入了信号声明区,随后即可声明信号,信号没有调用权限,不需要在申明的时候指定(public、protected、private)等权限。

  • 信号只申明不实现

    从形式上讲,信号的声明与普通的C++函数是一样的,但是信号却没有函数体定义,另外,信号的返回类型都是void,不要指望能从信号返回什么有用信息。

  • 信号可以通过关键字emit来发射

    
    emit clicked();

    2 初步认识槽函数

    ​ 槽函数可以像普通的 C++ 成员函数,可以被正常调用,与普通函数的不同之处是信号可以与槽函数相关联。当与其关联的信号被发射时,这个槽就会被调用。

    ​ 槽函数与其它普通函数一样,它们也有存取权限。槽函数也分为三种类型,即 public slots、private slots 和 protected slots。

    ​ public slots:在这个区内声明的槽意味着任何对象都可将信号与之相连接。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值