stefan
9th August 2008, 09:55
I created two objects (node and line - derived from QGraphicsItem). Each line has pointers to its starting and ending node, and each node has pointer to QGraphicsItem in LinkedItems vector.
Problem is when i move node i want to update line item, but i canot call prepareGeometryChange method because is protected. what's the reason of that? does anybody have an idea how to do this?
void itdNode::move(qint32 _x, qint32 _y)
{
for (qint32 iItem=0;iItem<LinkedItems.size();iItem++)
{
// LinkedItems[iItem]->prepareGeometryChange();
}
prepareGeometryChange();
x=_x;
y=_y;
update();
for (qint32 iItem=0;iItem<LinkedItems.size();iItem++)
{
LinkedItems[iItem]->update();
}
}
void itdNode::mouseMoveEvent(QGraphicsSceneMouseEvent *mouseEvent)
{
move(mouseEvent->scenePos().x(),mouseEvent->scenePos().y());
}
Problem is when i move node i want to update line item, but i canot call prepareGeometryChange method because is protected. what's the reason of that? does anybody have an idea how to do this?
void itdNode::move(qint32 _x, qint32 _y)
{
for (qint32 iItem=0;iItem<LinkedItems.size();iItem++)
{
// LinkedItems[iItem]->prepareGeometryChange();
}
prepareGeometryChange();
x=_x;
y=_y;
update();
for (qint32 iItem=0;iItem<LinkedItems.size();iItem++)
{
LinkedItems[iItem]->update();
}
}
void itdNode::mouseMoveEvent(QGraphicsSceneMouseEvent *mouseEvent)
{
move(mouseEvent->scenePos().x(),mouseEvent->scenePos().y());
}