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

我正在使用类中的delta()功能QWheelEvent来实现放大,缩小。现在它已被弃用,他们在文档中建议使用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;
        }
    }
}


以上是如何替换放大/缩小功能中已弃用的函数`QWheelEvent::delta()`?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>