Я использую QT/C++ и пытаюсь привлечь крупный и сложный QGraphicsScene. После того как я добавляю, что много объектов, панорамируя и масштабируя становится неприятно медленным. (Не удивительно здесь, конечно). Я играл с координатой устройства, кэширующейся (помогает с панорамированием к точке), и минимальные обновления области просмотра и так далее, но в конечном счете существует только слишком много объектов. То, что я хотел бы сделать, является ничьей объекты асинхронно от управления UI так или иначе. Другими словами, точно так же, как Google Maps делает, я хочу панорамировать и масштабировать и позволить составлению выгоды с такой скоростью, как это может, но смочь панорамировать снова, прежде чем объекты заканчивают тянуть.
Один метод, который я пробую, должен создать два QGraphicsScenes. Каждый имеет фактические объекты, но не привязан к QGraphicsView. Другой QGraphicsScene подключен к QGraphicsView, но он просто имеет, некоторые разместили рядом QPixmaps, которые измерены для покрытия экрана. План состоит в том, чтобы использовать запасные циклы ЦП для обновления любой пиксельной карты мозаики, для которой нужен он. Это кажется, что даст мне необходимый контроль над рендерингом (таким образом, я не должен буду блокироваться при перерендеринге всей видимой сцены). Мысли? Кто-либо реализовал это?
Посмотрите здесь: Генерация содержимого в потоках.
Похоже, это похоже на то, что вы пытаетесь сделать. Плиточные механизмы - очень распространенный способ загрузки больших объемов данных. Кроме размещенной ссылки, я не видел простого примера с использованием QGraphicsView
.
40000 Chips также показывает кое-что об управлении большими объемами данных.