Как найти размер QGraphicsItem после преобразования - PullRequest
2 голосов
/ 02 мая 2011

Я масштабирую QGraphicsItem в некоторых частях моего кода PyQT.В другом разделе моего кода, когда я вызываю self.rect.adjusted (0, 0, 0, 0), он возвращает измерения до преобразования.У меня вопрос, как я могу найти размеры после преобразования?

1 Ответ

3 голосов
/ 11 октября 2011

После преобразования можно запросить sceneBoundingRect () или вызвать boundingRegion (), который используется для большей точности, чем boundingRect (). Вся эта функция есть в QGraphicsItem. В QtAssistant вы можете узнать больше об этом:

Ограничивающая область описывает грубый контур визуального содержимого элемента. Несмотря на то, что это дорого вычислять, это также более точно, чем boundingRect (), и это может помочь избежать ненужного перекрашивания при обновлении элемента. Это особенно эффективно для тонких предметов (например, линий или простых многоугольников). Вы можете настроить гранулярность для ограничивающей области, вызвав setBoundingRegionGranularity (). Степень детализации по умолчанию равна 0; в котором ограничивающая область элемента совпадает с его ограничивающим прямоугольником. itemToDeviceTransform - это преобразование координат элемента в координаты устройства. Если вы хотите, чтобы эта функция возвращала QRegion в координатах сцены, вы можете передать в качестве аргумента sceneTransform ().

...