本篇文章是阅读大佬的小豆老师的文章所做的一些笔记而已,大家如果需要看比较系统性的QT,还是应该去看原作者的文章,讲的更加的系统。最后感谢原作者的奉献,而且,他的每篇文章下面的评论及回复,也都会让你受益匪浅的。
信号槽
- 所谓信号槽,实际就是观察者模式。当某个事件发生之后,比如,按钮检测到自己被点击了一下,它就会发出一个信号(signal)。这种发出是没有目的的,类似广播。如果有对象对这个信号感兴趣,它就会使用连接(connect)函数,意思是,用自己的一个函数(成为槽(slot))来处理这个信号。也就是说,当信号发出时,被连接的槽函数会自动被回调。这就类似观察者模式:当发生了感兴趣的事件,某一个操作就会被自动触发。(这里提一句,Qt 的信号槽使用了额外的处理来实现,并不是 GoF 经典的观察者模式的实现方式。)
- 按钮在 Qt 中被称为QPushButton。创建方式:`QPushButton button(“quit”);
- connect函数最常用的形式:
connect(sender, signal, receiver, slot);
第一个是发出信号的对象,第二个是发送对象发出的信号,第三个是接收信号的对象,第四个是接收对象在接收到信号之后所需要调用的函数。 - 信号槽要求信号和槽的参数一致&