">必赢国际437437.com_必赢国际437在线游戏_437必赢国际网站

您现在的位置:必赢国际437437.com_必赢国际437在线游戏_437必赢国际网站 > 联系我们 >  > 正文

然后在主线程中处理读取数据槽

2019-04-26 22:05http://www.baidu.com四川成人高考网

  各位QT大侠: QT多线程编程的时候,怎么把次线程处理好的数据实时的显示到ui上去?

  百度知道电脑/网络操作系统/系统故障Windows

  各位QT大侠: QT多线程编程的时候,怎么把次线程处理好的数据实时的显示到ui上去?

  我的主线程就一个MainWindow,里面由一个TableWidget,怎么把我的次线程里面的数据实时显示到这个TableWidget上?次线程主要完成从另外一个计算机接收UDP数据,并完成解析。...

  我的主线程就一个MainWindow,里面由一个TableWidget,怎么把我的次线程里面的数据实时显示到这个TableWidget上?次线程主要完成从另外一个计算机接收UDP数据,并完成解析。

  展开全部Qt上要求界面处理一般需要在主线程中完成。所以最好把次线程中的数据缓冲区放到主线、一种方式可以进行数据拷贝,但肯定效率低了。2、另一种方式是直接将数据缓冲区放到主线程中,然后在主线程中处理读取数据槽。但这样可能主线程压力大,机器配置不能太低。3、直接在主线程中访问次线程的数据并刷新界面,不过这处理起来复杂(需要手工同步),容易出错。4、将TableWidget指针传入次线程中,直接在次线程中对其进行操作并发送刷新信号。这种方式未经验证,感觉可能性不大:一方面指针容易走空,另一方面就是前面说的限制在主线程中对接面进行处理。不过所说的“处理”可能并不包括刷新数据吧。期待楼主进行验证,并展示结果。(或者楼主可以将UDP试验项目发送给我,让我试试,,谢谢!)