void ItemScene::mousePressEvent(QGraphicsSceneMouseEvent *event) { if(this->sceneType == MenuDisplay) { cout << "Width: " << this->sceneRect().width() << endl; QList<QGraphicsView*> parentViews = this->views(); cout << parentViews.size() << endl; MainMenu* view = (MainMenu*)parentViews.at(0); int viewPosX, viewPosY, viewWidth, viewHeight, imagePosX, imagePosY, imageWidth, imageHeight; viewPosX = view->getPosition()->x(); viewPosY = view->getPosition()->y(); viewWidth = view->width(); viewHeight = view->height(); imagePosX = this->imageDisplay->imageFileItem->pos().x(); imagePosY = this->imageDisplay->imageFileItem->pos().y(); imageWidth = this->imageDisplay->imageFileItem->boundingRect().width(); imageHeight = this->imageDisplay->imageFileItem->boundingRect().height(); if( (viewPosX + viewWidth >= imagePosX || viewPosX + viewWidth >= imagePosX + imageWidth ) && (viewPosY <= imagePosY || viewPosY <= imagePosY + imageHeight) ) { QPointF position(viewPosX + event->scenePos().x(), viewPosY + event->scenePos().y()); this->imageDisplay->addSelectionMarker(position); } } update(); QGraphicsScene::mousePressEvent(event); }
int main(int argc, char *argv[]) { QApplication a(argc, argv); MainMenu w; QRect screenGeometry = QApplication::desktop()->screenGeometry(); int x = (screenGeometry.width()-w.width()) / 2; int y = (screenGeometry.height()-w.height()) / 2; w.move(x, y); w.show(); return a.exec(); }