我有一个单线程gui应用程序,我不选择一种连接类型,因此根据文档,连接将是一个直接的连接。根据文档:"The slot is invoked immediately when the signal is emitted. The slot is executed in the signalling thread."
就我的理解而言,这显然导致了这样的结论:如果我在一个方法中断开这样的一个自动连接,那么就没有可能在完成这个方法(在这个方法中我做断开连接)之后,得到一个仍然被调用的插槽(对应于公正-断开连接)。据我所知,这样做的原因是,这样的自动连接(这里是直接的)没有使用事件队列。
我说的对吗?还是我应该小心点,最好保留一个state-variable,再检查一下这个state,如果它还在以某种(对我来说不太清楚)的方式被调用的话,我应该从插槽返回吗?我特别担心我有连接的情况,在这种情况下,信号是由Qt实体(例如信号QNetworkReply::finished()等)产生的,而不是由我产生的,因为我没有完全控制它们。
我找到了相关的问题,如this one,但我没有找到确切的问题,所以我有信心,决定问。
发布于 2022-04-01 17:26:11
如果您只使用直接连接,则在断开连接后无法“接收”任何进一步的信号。直接连接只是一个回调电话,仅此而已。
https://stackoverflow.com/questions/71710026
复制相似问题