2011-05-21 75 views
2

我需要在像QGraphicsView這樣的區域繪製大量(大約500000)小線。 我試圖使用QPainterPath和QGraphicsScene,但用lineTo()將500000行添加到QPainterPath需要超過500 MB的內存,我的應用程序被我的內核殺死。QT如何繪製500000行?

有沒有一種方法可以在QT中繪製這樣多的線?

+2

如何在任何給定的時間顯示這些行中的任何一行? – 2011-05-21 13:31:34

+0

所有線條都可見 – xelez 2011-05-21 17:10:45

+0

其中有多少人可以在任何時間觀看?我認爲這可能是@Jen所掌握的。你能否確定它們的「最重要」子集,可能會因爲用戶在特定區域請求更多細節而繪製更多?或者以有限的速度提取它們,將它們分層次越長,它們的視野就越長。 – shambulator 2011-05-22 18:22:49

回答

1

QGraphicsLineItem可能具有比QPainterPath更低的開銷。但是增加50萬的數量將會抵消收益。

假設您將所有行視爲一個項目,因爲您正在將行添加到QPainterPath,因此創建自定義QGraphicsItempaint()自己的行將是最快的方式。它也將避免管理路徑和線路結構的所有內存負擔。