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);
}
Esempio n. 2
0
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();
}