我有一个 CLI 应用程序,我正在扩展它以提供一个用户界面来帮助提高可用性,并且正在使用 Qt-4.8.3。
应用程序连接到 IRC 服务器,每个连接都驻留在自己的线程中接收数据。解析器在不同的线程中运行,然后处理数据并做出相应的反应——创建通道、添加用户等。
我一直在查看文档,只是无法决定(或真正看到)在我的实例中更新 UI 最有用的方法是什么——我是否应该创建一个从 QThread 继承的类并运行它,做一些诡计QFuture 和 QtConcurrent,创建一个自定义结构并将其填充到 UI 线程,使用 customEvent(),还是有更好的方法?代码的易读性和性能是最高要求。
我目前拥有的代码运行完美,但在解析器线程中自然地创建一个新的 QWidget 会立即中断,并通知它不是 UI 线程。
只有一个类(目前,它继承 QObject 并提供信号 + 插槽功能)用于在 QApplication 上运行 exec,并且还包含服务器、通道、用户等的创建函数。
如果需要,我可以发布一些代码,但是代码很多,我不确定它是否真的相关。