如何在放大/缩小函数中替换已弃用的函数' QWheelEvent::delta() ' ?



我使用QWheelEvent类的delta()函数来实现放大,缩小。现在已弃用,他们在文档中建议使用pixelDelta()angleDelta()来代替,但它们是QPoint对象!

谁能告诉我如何用另一个函数替换这个废弃的函数?

void MapView::wheelEvent(QWheelEvent *event)
{
if(event->delta()>0)
{
if(m_scale < MAX_SCALE)
{
std::cout << m_scale << std::endl;
this->scale(ZOOM_STEP, ZOOM_STEP);
m_scale *= ZOOM_STEP;
}
}
else if(event->delta() < 0)
{
if(m_scale >= MIN_SCALE)
{
std::cout << m_scale << std::endl;
this->scale(1/ZOOM_STEP, 1/ZOOM_STEP);
m_scale *= 1/ZOOM_STEP;
}
}
}

angleDelta的文档说明angleDelta().y()将返回垂直鼠标滚轮旋转的角度,angleDelta().x()将返回水平鼠标滚轮旋转的角度。

对于缩放,我假设你想使用垂直滚动,所以相应地改变条件:

void MapView::wheelEvent(QWheelEvent *event)
{
if(event->angleDelta().y() > 0)
{
if(m_scale < MAX_SCALE)
{
std::cout << m_scale << std::endl;
this->scale(ZOOM_STEP, ZOOM_STEP);
m_scale *= ZOOM_STEP;
}
}
else if(event->angleDelta().y() < 0)
{
if(m_scale >= MIN_SCALE)
{
std::cout << m_scale << std::endl;
this->scale(1/ZOOM_STEP, 1/ZOOM_STEP);
m_scale *= 1/ZOOM_STEP;
}
}
}

最新更新