[Interest] QGraphicsView selection not honoring QGraphicsItem::shape?
Christian Gagneraud
chgans at gmail.com
Mon Jun 26 05:07:20 CEST 2017
On 26 June 2017 at 14:58, Patrick Stinson <patrickkidd at gmail.com> wrote:
>
>> On Jun 25, 2017, at 4:51 PM, Christian Gagneraud <chgans at gmail.com> wrote:
>>
>> On 26 June 2017 at 05:10, Patrick Stinson <patrickkidd at gmail.com> wrote:
>>> def update(self, *args):
>>> if None in self.people:
>>> return
>>
>> you're missing a call to prepareGeometryChange()
>>
>>> a = self.mapToScene(self.people[0].bottomCenterScene())
>>> b = self.mapToScene(self.people[1].bottomCenterScene())
>>
>> The path should be in (this) item coordinates, not scene coordinates.
>
> This item will always be top-level so the coordinates will match the scene.
In this case, you need to make sure that all your items are
positionned at the scene origin too.
> But for cleanliness’ sake, how do you convert from scene coordinates to item coordinates? I don’t see a method for that.
a = mapFromItem(otherItem, otherItem.pointInLocalCoordinate())
b = mapFromScene(pointInSceneCoordiante())
QGI has a lot of mapTo/From, .... More that you will ever need! ;)
>
>>
>>
>> Plus you're bounding rect should include the pen width of the path
>> you're drawing, eg:
>> halfPenWidth = self.pen.width()/2.0;
>> return self.path.boundingRect().adjusted(-halfPenWidth, -halfPenWidth
>> , halfPenWidth , halfPenWidth )
>>
>> Hope this helps.
>>
>> Chris
>
More information about the Interest
mailing list