jonks
12th May 2009, 21:08
Hi,
I need advice - I have 2 problems I cannot solve :(
I'm using QT4.5.1
Firstly the mouseMoveEvent is not fired when drag mode is RubberBandDrag. Is this expected behavior?
Secondly when setSelectionArea is called, the setSelected function of my QGraphicsItem is not called.
Anyone have any ideas what i am doing wrong??
(have I forgotten to set any flags in my scene/graphicsitems?)
Code is below...
Thanks for any advice
// MyScene is derived from QGraphicsScene
void MyScene::mousePressEvent ( QGraphicsSceneMouseEvent * event )
{
views()[0]->setDragMode(QGraphicsView::RubberBandDrag);
m_rubberbandP1 = event->scenePos().toPoint();
QGraphicsScene::mousePressEvent(event);
}
void MyScene::mouseMoveEvent ( QGraphicsSceneMouseEvent * event )
{
if (views()[0]->dragMode() == QGraphicsView::RubberBandDrag)
qDebug() << "mouseMoveEvent"; // never displays
QGraphicsScene::mouseMoveEvent(event);
}
void MyScene::mouseReleaseEvent ( QGraphicsSceneMouseEvent * event )
{
views()[0]->setDragMode(QGraphicsView::ScrollHandDrag);
QRect rect(m_rubberbandP1, event->scenePos().toPoint());
QPainterPath pp;
pp.addRect(rect);
setSelectionArea(pp);
QGraphicsScene::mouseReleaseEvent(event);
}
I need advice - I have 2 problems I cannot solve :(
I'm using QT4.5.1
Firstly the mouseMoveEvent is not fired when drag mode is RubberBandDrag. Is this expected behavior?
Secondly when setSelectionArea is called, the setSelected function of my QGraphicsItem is not called.
Anyone have any ideas what i am doing wrong??
(have I forgotten to set any flags in my scene/graphicsitems?)
Code is below...
Thanks for any advice
// MyScene is derived from QGraphicsScene
void MyScene::mousePressEvent ( QGraphicsSceneMouseEvent * event )
{
views()[0]->setDragMode(QGraphicsView::RubberBandDrag);
m_rubberbandP1 = event->scenePos().toPoint();
QGraphicsScene::mousePressEvent(event);
}
void MyScene::mouseMoveEvent ( QGraphicsSceneMouseEvent * event )
{
if (views()[0]->dragMode() == QGraphicsView::RubberBandDrag)
qDebug() << "mouseMoveEvent"; // never displays
QGraphicsScene::mouseMoveEvent(event);
}
void MyScene::mouseReleaseEvent ( QGraphicsSceneMouseEvent * event )
{
views()[0]->setDragMode(QGraphicsView::ScrollHandDrag);
QRect rect(m_rubberbandP1, event->scenePos().toPoint());
QPainterPath pp;
pp.addRect(rect);
setSelectionArea(pp);
QGraphicsScene::mouseReleaseEvent(event);
}