作为对象间通信的机制.
信号槽与事件虽然有一些细微的差别.
但是在使用上来讲, 有区别吗?
或者说 在什么情况下二者不能互相替代.
------解决思路----------------------
感觉区别不大。只是信号槽用起来方便一些。区别可以看看ConnectionType
------解决思路----------------------
不一样的,有很多区别。
1.信号与槽,在同一线程,类型为直连时,信号发生,槽被调用,相当于直接的函数调用,是同步的;而事件,使用sendEvent时是同步的,使用postEvent则是异步,要等到下一轮事件循环才会被处理。
2.跨线程时,采用队列连接的信号与槽,是通过事件实现的。从这点讲,信号与槽等同于事件,只是信号与槽用起来更方便,事件稍微繁琐。
3.事件一方面是处理用户输入,比如按键,鼠标;一方面可以自定义事件用于对象间通信。无论哪种,都会经过Qt的事件循环。而信号与槽则不一定会经过事件循环。
区别很多,不能一一列举,用着用着就明白了。
------解决思路----------------------
版主在4楼提到的几点都关键(涉及到Qt中很多本质的东西),但是你在5楼说这些你都知道。
可是,你知道完全理解4楼的话意味着什么?意味着你对Qt有很深入的理解,而这种理解,是不可能2天、2周、2个月的时间所能达到的(甚至2年可能都有困难)。
另外:如果你觉得我举得两个例子不合你要求,建议你将该问题完全放下。随着学习的深入,你自然而然会理解:你的困惑是什么,问题该如何表述,答案是什么...