【发布时间】:2015-12-23 09:05:19
【问题描述】:
我有几个关于信号和插槽的问题。我正在使用 Qt 4.8。
信号和槽必须是无效函数吗?信号当然不是函数,但它被声明为普通的成员函数。
我经常使用 call-by-const-reference 来避免创建过多的对象副本。我可以对信号和插槽使用按常量引用调用吗?发出信号后,发送的对象可能会超出范围。或者信号是否存储了所发送内容的副本?那么 call-by-const-reference 将与 call-by-value 相同。
如果槽操作它通过从发送者的引用调用获得的对象怎么办?发件人是否注意到这一点?
是否可以强制信号等待连接的插槽完成?我该怎么做?
【问题讨论】:
-
这是 Qt4 “传统”信号还是 qt5 信号?
-
我使用的是 Qt 4.8,但如果您能解释一下 Qt4 和 Qt5 之间的区别,我将不胜感激。
-
qt4和qt5的区别是另外一个话题,见doc.qt.io/qt-5/signalsandslots-syntaxes.html
-
“可以强制信号等待连接的插槽完成吗?我该怎么做?”这是同一线程内的信号/槽连接的默认设置(DirectConnection)。信号只是一个函数,它同步调用与其连接的所有槽。
标签: c++ qt pass-by-reference signals-slots