写在前面
本文主要介绍Qt信号槽(signal and slot)机制,介绍Qt信号槽机制的含义,用途以及如何简单的使用。本文基于Qt5,大部分内容来源于其文档,文档链接在此
为什么要使用信号槽机制
Qt是一种基于C++的GUI(graphic user inferface)工具库,而在GUI应用中,涉及到人机交互,也就是程序需要对用户的各种操作进行响应,这个需求本质上就是GUI编程中的控件之间的通信问题。基于Qt的GUI程序存在着大量的控件,如按钮,标签,候选框等,这些控件在编程层面也就是以对象形式存在,因此这样控件间的通信问题实际上就是对象间的通信问题。好了,在Qt中使用的是信号槽机制实现对象间的通信问题,而在其他的GUI工具库使用称为回调(callback)的机制。
Qt信号槽机制的构成
在Qt中,一个对象可以向另一个对象发送信号, 一个对象可以使用槽接收其他对象发送的信号,示意图如下:
通过使用connect操作,将一个对象的信号与另一个对象的槽构建联系,即对象的信号发出将会被另一个对象的槽接收,并且进行设定的操作。
信号(Signal)
信号定义在Qt对象中,可以使用关键词