Я использую QGraphicsScene для рисования миллионов полигонов. Я планирую использовать Qt + OpenGL позже, но пока я не рисую более 1 миллиона полигонов, а Qt обрабатывает его просто отлично. Проблема возникает, когда я пытаюсь отображать текст внутри полигонов.Показать текст внутри QGraphicsPolygonItem без копирования std :: string в QString?
Каждый многоугольник (собственный класс, наследующий QGraphicsPolygonItem) является визуальным представлением объекта и имеет указатель на связанный с ним объект. Каждый объект имеет идентификатор std::string
. Если бы я мог просто показать , что строка внутри полигонов должна быть точной по памяти. Однако Qt, похоже, нуждается в QString
, и для преобразования каждой строки требуется много времени и пространства. Я создаю объект QGraphicsTextObject для каждого многоугольника, и каждому из них нужна копия QString
std::string
. Есть ли способ обойти эту копию, используя только Qt?
Обрезка сцены нежелательна. Есть несколько многоугольников, которые слишком малы для любого текста, чтобы вписаться в них, и их можно увидеть только с помощью масштабирования сцены. Эти полигоны (и их текст) не обязательно должны отображаться (если пользователь не увеличивает масштаб изображения), но я не думаю, что это помогло бы без создания различных других проблем.
P.S .: Возможно отображение текста по требованию (например, когда пользователь наводит мышь на каждый многоугольник), однако было бы идеально, если бы текст был легко отображен.
Я не знал об этих функциях, они помогут вам оптимизировать код. Благодаря! – Alex