信号和槽
信号和槽用于对象间的通讯。信号/槽机制是 Qt 的一个中心特征并且也许是 Qt
与其它工具包的最不相同的部分。
在图形用户界面编程中,我们经常希望一个窗口部件的一个变化被通知给另一
个窗口部件。更一般地,我们希望任何一类的对象可以和其它对象进行通讯。
例如,如果我们正在解析一个 XML 文件,当我们遇到一个新的标签时,我们
也许希望通知列表视图我们正在用来表达 XML 文件的结构。
较老的工具包使用一种被称作回调的通讯方式来实现同一目的。回调是指一个
函数的指针,所以如果你希望一个处理函数通知你一些事件,你可以把另一个
函数(回调)的指针传递给处理函数。处理函数在适当的时候调用回调。回调
有两个主要缺点。首先他们不是类型安全的。我们从来都不能确定处理函数使
用了正确的参数来调用回调。其次回调和处理函数是非常强有力地联系在一起
的,因为处理函数必须知道要调用哪个回调。