明确地监听信号

Posted

技术标签:

【中文标题】明确地监听信号【英文标题】:explicitly listening for signals 【发布时间】:2011-07-19 14:20:00 【问题描述】:

我是 Qt 的新手,但我在 C 和 Java 方面有一些经验。 我正在尝试编写一个程序,该程序与网络上的不同服务器建立多个 TCP 连接。 ip是从文本文件中读取的,我使用connectToHost建立连接,然后将套接字添加到QList中。这发生在一个循环中。

问题是我只有在程序退出循环时才开始接收 connected() 信号,这会导致一些意外行为。 那么有没有办法在循环中轮询信号?

【问题讨论】:

【参考方案1】:

在循环内调用 QCoreApplication::processEvents() 以避免冻结

【讨论】:

【参考方案2】:

你可以使用QAbstractSocket::waitForConnected()

http://doc.qt.io/qt-5/qabstractsocket.html#waitForConnected

【讨论】:

以上是关于明确地监听信号的主要内容,如果未能解决你的问题,请参考以下文章

《Linux应用进程间通信 — 信号》

[linux basic]基础--信号

167 - 接收到信号事件

明确设置值时抑制Qt信号的正确方法是啥

聚合物2中的铁信号交替出现?

libevent信号事件监听