• 7170阅读
  • 3回复

[讨论]如何在线程里调用QGraphicsScene的addItem函数? [复制链接]

上一主题 下一主题
离线goldensea0
 

只看楼主 倒序阅读 楼主  发表于: 2013-12-26
用过QT矢量图系统的,肯定知道QGraphicsScene的addItem函数效率一般,

当加很多QGraphicsItem就会很慢,于是想把addItem这个操作放到线程中完成,

结果会出现

Windows has triggered a breakpoint in chip.exe.
This may be due to a corruption of the heap, which indicates a bug in chip.exe or any of the DLLs it has loaded.
This may also be due to the user pressing F12 while chip.exe has focus.
The output window may have more diagnostic information.

真心苦恼啊!

难道只能在主线程操作QGraphicsScene的addItem和delItem?


离线彩阳

只看该作者 1楼 发表于: 2013-12-26
GUI操作放在主线程完成。
Qt的Graphics-View慢就慢在事件的派发上。因为QGraphicsView它有很多层继承,event()函数有多次调用;随后是信号和槽,因为要作类型检查,所以就慢下来了。
看看能不能限制更新区域,这样重绘的量就少一些了。
上海Qt开发联盟,热忱地欢迎你的加入!
离线roywillow

只看该作者 2楼 发表于: 2013-12-26
同ls,我也认为是gui操作必须放在主线程中进行的原因,其他线程操作gui只能通过信号槽
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线piaoliushi

只看该作者 3楼 发表于: 2013-12-27
你也在用QGrpahcisView框架做矢量图软件吗?多多交流
QQ:29687387
快速回复
限100 字节
 
上一个 下一个