1.7 补充——C++ GUI Programming with Qt 4 中的信号与槽

深度了解信号和槽

信号和槽机制是qt编程中最根本的原则。它允许开发人员将两个完全不了解的对象绑定在一起。我们已经将一些信号和槽绑定在了一起,声明了我们自己的信号和槽,当我们触发这些信号时,将会调用信号所绑定的槽。让我们花一些时间更近地了解一下信号槽机制。槽基本上等同于最原始的C++成员方法。它们可以是虚函数;它们也可以被重载;它们在类中的权限可以是公有的、保护的或者私有的,它们也可以直接被任何其他C++成员方法调用;而且它们的参数可以是任何类型的。不同的地方在于,一个槽可以被一个信号连接,在这种情况下,每次触发这个信号就会自动调用这个槽函数。

connect()语句的定义类似于下面:
connect(sender, SIGNAL(signal), receiver, SLOT(slot));
这里信号的发送者和接受者都是指向QObject的指针,signal和slot是没有带参数的函数的名称。实际上,SIGNAL()和SLOT()宏定义会将他们的参数转化为一个字符串。到目前为止,我们看到的例子中已经将不同的信号连接到不同的槽中。这里还有其他的可能性需要我们去思考。

一个信号可以被连接到多个槽上:
connect(slider,SIGNAL(valueChanged(int)),spinBox, LOT(setValue(int)));
connect(slider,SIGNAL(valueChanged(int)),this,SLOT(updateStatusBarIndicator(int)));
当信号触发是,槽函数就会以一个不确定的顺序一个接着一个被调用。

多个信号可以连接到同一个槽

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值