• 9419阅读
  • 7回复

[提问]求助Qt绘图效率问题 [复制链接]

上一主题 下一主题
离线wangmingxiao
 

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

只看该作者 1楼 发表于: 2015-07-20
绘图卡界面?但是你开了一个单独的线程接收数据,应该不会丢数据吧?
离线firebolt

只看该作者 2楼 发表于: 2015-07-20
你需要一个处理udp通讯的线程,还需要一个线程在后台绘制雷达图像到帧缓冲区,前端显示部分还需要一个线程,按帧率将后台帧缓冲区的图像贴到主表面。
离线wangmingxiao

只看该作者 3楼 发表于: 2015-07-20
回 cwc1987 的帖子
cwc1987:绘图卡界面?但是你开了一个单独的线程接收数据,应该不会丢数据吧?[表情] (2015-07-20 15:19) 

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

只看该作者 4楼 发表于: 2015-07-20
回 firebolt 的帖子
firebolt:你需要一个处理udp通讯的线程,还需要一个线程在后台绘制雷达图像到帧缓冲区,前端显示部分还需要一个线程,按帧率将后台帧缓冲区的图像贴到主表面。 (2015-07-20 15:55) 

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

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

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

绘图用openGL来绘可能更好
离线15145093145

只看该作者 7楼 发表于: 2017-02-27
哎~ 高在线,大并发的程序,看样子真不适合qt, 用第三方库吧~
快速回复
限100 字节
 
上一个 下一个