我需要在QGraphicsView等某些区域绘制很多(约500000)个小线条。 我尝试使用QPainterPath和QGraphicsScene,但是使用lineTo()向QPainterPath添加500000行需要超过500 MB的内存,我的应用程序被我的内核杀死。
有没有办法可以在QT中画出这么多行?
答案 0 :(得分:1)
QGraphicsLineItem
的开销可能低于QPainterPath
。但是增加其中的一半将会抵消收益。
假设您将所有行视为一个项目,因为您要向QPainterPath
添加行,因此创建自定义QGraphicsItem
和paint()
这些行将是最快的方法。它还将避免管理路径和线路结构的所有内存负担。