查看完整版本: [-- 求助Qt绘图效率问题 --]

QTCN开发网 -> Qt嵌入式开发 -> 求助Qt绘图效率问题 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

wangmingxiao 2015-07-20 14:19

求助Qt绘图效率问题

本人想用Qt开发雷达显示界面,在绘制回波时速度太慢;因为开辟了接收UDP数据的线程,每次发送数据加快之后数据就会部分接受不到;发现是Qt在绘图时占用的时间太长,导致数据丢失了。想请教下各位大神有没有什么绘图效率高的方法,并且不影响接收数据线程的,我试了图形视图框架和通用的绘图方法,速度都不行?????感谢各位了。。。。。  

cwc1987 2015-07-20 15:19
绘图卡界面?但是你开了一个单独的线程接收数据,应该不会丢数据吧?

firebolt 2015-07-20 15:55
你需要一个处理udp通讯的线程,还需要一个线程在后台绘制雷达图像到帧缓冲区,前端显示部分还需要一个线程,按帧率将后台帧缓冲区的图像贴到主表面。

wangmingxiao 2015-07-20 16:41
cwc1987:绘图卡界面?但是你开了一个单独的线程接收数据,应该不会丢数据吧?[表情] (2015-07-20 15:19) 

是开了线程在接收数据,使用的是qt自带的UDPSocket,但是一绘图数据就受不到那么多,发送间隔是3毫秒,是不是使用linux自带的socket不会丢?

wangmingxiao 2015-07-20 16:46
firebolt:你需要一个处理udp通讯的线程,还需要一个线程在后台绘制雷达图像到帧缓冲区,前端显示部分还需要一个线程,按帧率将后台帧缓冲区的图像贴到主表面。 (2015-07-20 15:55) 

我现在是开了接收udp数据的线程将数据放入一个List的列表,在另外一个线程逐个取出处理。使用的是Qt的视图框架,把每个点迹设置为一个图形项,遇到点迹就增加图形项,主线程负责显示。现在只要显示绘图就会掉数据,发850包数据只能接受到500左右,是不是Qt中的UDP数据接收有问题?要不要换成linux中的网络接收程序?

wangmingxiao 2015-07-20 19:56
问题终于解决了,采用Linux系统的网络编程就不会掉数据了,确实是Qt自带的UDP接收程序有问题,我猜测可能是绘图的时候程序就没有去接收UDP数据接收的信号,所以以后大家如果数据量大的话建议不要用Qt封装好的网络函数。谢谢两位回答的同志

hehui 2017-02-26 11:17
wangmingxiao:问题终于解决了,采用Linux系统的网络编程就不会掉数据了,确实是Qt自带的UDP接收程序有问题,我猜测可能是绘图的时候程序就没有去接收UDP数据接收的信号,所以以后大家如果数据量大的话建议不要用Qt封装好的网络函数。谢谢两位回答的同志 (2015-07-20 19:56) 

绘图用openGL来绘可能更好

15145093145 2017-02-27 09:04
哎~ 高在线,大并发的程序,看样子真不适合qt, 用第三方库吧~


查看完整版本: [-- 求助Qt绘图效率问题 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled