
Originally Posted by
wysota
You're using the wrong change value. I said ItemTransformChange not ItemTransformHasChanged.
here is my code :
QVariant draw2dgraph
::itemChange(GraphicsItemChange change,
const QVariant &value
) {
if(ItemTransformChange == change && parentItem() )
{
QTransform trans = transform();
QRectF rect
= trans.
mapRect(boudingRect
());
if(parentItem()->boundingRect().size()!=rect.size())
{
rect = parentItem()->boundingRect();
}
}
}
QVariant draw2dgraph::itemChange(GraphicsItemChange change, const QVariant &value)
{
if(ItemTransformChange == change && parentItem() )
{
QTransform trans = transform();
QRectF rect = trans.mapRect(boudingRect());
if(parentItem()->boundingRect().size()!=rect.size())
{
rect = parentItem()->boundingRect();
}
}
return QGraphicsItem::itemChange(change,value);
}
To copy to clipboard, switch view to plain text mode
but the draw2DGraph's object still outside it's parent boundingRect after it zoom in.
In draw2DGraph class I do zoom in function like this
void draw2DGraph::zoomIn()
{
scale(1.2,1.2);
}
void draw2DGraph::zoomIn()
{
scale(1.2,1.2);
}
To copy to clipboard, switch view to plain text mode
why ? why still happen like this? wish you help again! Thank you
Bookmarks