我有一个自定义QGraphicsScene类,在进行一些鼠标移动时,我想对其进行缩放。
每当因子> = 1.0时,缩放就可以正常工作。但是当因子小于1时,它会由于(我相信是一个循环)而崩溃。这是处理缩放并解释循环的代码:

 void NodeScene::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
    {
// Start of function
        QPointF newCoord=event->scenePos();
        if (zooming) // Zooming only set to true when using right mouse button with Alt-key pressed
        {
            mainView->setTransformationAnchor(QGraphicsView::AnchorUnderMouse);

            // Scale the view / do the zoom

            if(newCoord.x()>lastMouseCoord.x())
            {
                // Zoom in
                mainView->scale(1.03f, 1.03f);

            }

            if(newCoord.x()<lastMouseCoord.x())
            {
                // Zoom out
                mainView->scale(0.97f, 0.97f); --> Goes back to start of function and then zooming out again and then start of function... etc... until crashing
            }

            lastMouseCoord=newCoord;

        }

    }

知道为什么缩小会立即开始功能吗?谢谢

最佳答案

我必须在zoomout函数之前实现全局变量的初始化,如果在进入mouseMoveEvent时初始化了该变量,那么我将直接退出该函数。

关于c++ - 缩小QGraphicsView会崩溃,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33230624/

10-13 05:09