Hi Michael, I implemented your method and it works pretty well. Thank you so much for your help.
This is the code (ImageGraphicsSceneW subclasses ImageGraphicsScene). void ImageGraphicsSceneW::mousePressEvent(QGraphicsSceneMouseEvent *event) { origPoint=event->scenePos(); qDebug()<<"origPoint="<<origPoint; mousePressed=true; QGraphicsScene::mousePressEvent(event); } void ImageGraphicsSceneW::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { if(mousePressed==true){ if(!rectangle){ rectangle=new QGraphicsRectItem; this->addItem(rectangle); rectangle->setPen(QPen(Qt::red,4,Qt::SolidLine)); rectangle->setPos(origPoint); } qDebug()<<"event.scenePos.x:"<<event->scenePos(); rectangle->setRect(0,0,(event->scenePos().x()-origPoint.x()),(event->scenePos().y()-origPoint.y())); } else QGraphicsScene::mouseMoveEvent(event); } void ImageGraphicsSceneW::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) { rectangle=NULL; //buffer_rectangle(0,0,0,0); mousePressed=false; QGraphicsScene::mouseReleaseEvent(event); } However, I have some problems when I actually want to draw rectangles with negatives width and height. I mean when the values of origPoint.x() and origPoint.y() are strictly higher than scenePos().x() and scenePos().y() respectively. Do you have any idea of how I can deal with this problem ? Do I have to use the QTransform class ? Thank you so much for your help David 2015-10-20 9:10 GMT+02:00 David Carmona <david.carmon...@gmail.com>: > Hi Michael, > > Thank you for your answer. I'm going to try it and tell you. > > Regards > David > Le 20 oct. 2015 08:42, "Michael Sué" <s...@sf.mpg.de> a écrit : > >> Hi, >> >> > I would like to create a Graphical User Interface which allows the user >> to draw as many rectangles as he wants on an image using the left button of >> his mouse. >> >> In the mousePressEvent you would create a QGraphicsRectItem, add it to >> the graphics scene and make it "the current one". >> >> In mouseMoveEvent you would change the current rect's edge according to >> the mouse position. >> >> The code in "paint" seems not really necessary as graphics items added to >> the graphics scene know how to draw themselves. >> >> Your image you would draw in the virtual drawBackground method of your >> graphics view. >> >> - Michael. >> >> >> -- David Carmona
_______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest