Overlay a large QGraphicsItem in a QGraphicsView

I am currently using QGraphicsItem, which loads pixmap to display some raster data. I'm not currently doing any kind of tile or anything like that, but I redefined my QGraphicsItem so that I can implement features like scaling under the mouse, tracking the pixel pixels that I'm viewing, etc. Etc.

My files coming from the disk are 1 - 2 GB in size, and I would like to find a more optimal way to display them. To begin with - it seems that I could display them all at once if I wanted, because the QImage that I use (Qpixmap-> QImage-> QgraphicsItem) seems to fail with any pixel index over 32, xxx (16 bits).

So, how do I implement tiling here if I want to support using a single QGraphicsItem? I don’t think I want to use several QGraphicsItems to save the displayed data + neighboring "about" data for display. This would require me to scale them all when a person was silent and trying to scale one slab, and thus making me move everything as well, right? I assume that this will also require some knowledge of what data needs to be accurately obtained from the file.

However, I am open to ideas. I also suggest that it would be nice to do it somehow, as the user can keep the image panning or zooming even if all the tiles are not already loaded.

I looked at the chip version of 40,000, but I'm not sure if this is what I do. It seems that basically it displays all the chips, as usual, in the scene, just overriding the drawing method, level of detail ... or did I miss something in this demo?

+3
source share
1 answer

Not surprisingly, it would be difficult to process images of this size. Qt is simply not designed for this, and perhaps other factors contributing to a particular OS, and possibly a way to manage memory.

(, , ) . , , QImage ( QPixmap) , , .

(), . " " . , , , , Qt, , .

, , , , . QGraphicsView, .

0

All Articles