深入信号和槽---QT

    这一节说一些理论的东西吧,聊一聊这QT的一个重要组成部分,那就是信号和槽。这个机制可以再对象之间并不了解的情况下将他们的行为联系起来。前面的几篇文章中已经用到过连接信号和槽了,声明控件自己的信号和槽,并实现了槽函数,发送信号。现在咱再聊聊这个机制。

    槽的话,大家可以看成一个成员函数(其实和成员函数不一样,这样说为了初学者容易理解),可以使虚函数,可以被重载。可以定义为公有,可以为私有,也可以为保护。它可以像C++的成员函数一样被调用,可以传递任何类型的参数。注意的是,槽函数能和一个信号连接,只要信号发出,这个槽函数会自动调用。

   看看语法吧,connect语法:

   connect(sender,SIGNAL(signal),receiver,SLOT(slot));

      其中sender和receiver是QObject对象指针。还有一些要注意的是,一个信号可以连接到多个槽,多个信号可以连接一个槽,一个信号可以和另一个信号连接。

    1、一个信号可以连接到多个槽

                    connect(slider,SIGNAL(valueChanged(int)),spinBox,SLOT(setValue(int)));

                    connect(slider,SIGNAL(valueChanged(int)),this,SLOT(updataStatusBarIndicator(int)));

               2、多个信号可以连接一个槽

                    connect(lcd,SIGNAL(overflow()),this,SLOT(handleMathError));

                    connect(calculator,SIGNAL(divisionByZero(),this,SLOT(handleMathError)));

              3、一个信号和另一个信号连接

                    connect(lineEdit,SIGNAL(textChanged(const QString &)),this,SIGNAL(updateTecord(const QString &)));

好吧,今天就少说一点吧!

           

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值