缩小 QGraphicsView 会崩溃
Zooming out a QGraphicsView is crashing
我有一个自定义 QGraphicsScene class,我想在进行一些鼠标移动时对其进行缩放。
只要因子 >= 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的时候初始化的,那么我就直接退出这个函数
我有一个自定义 QGraphicsScene class,我想在进行一些鼠标移动时对其进行缩放。
只要因子 >= 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的时候初始化的,那么我就直接退出这个函数