Qt5 鼠标滚轮控制窗口大小


重写鼠标滚轮事件:

void Clock::wheelEvent(QWheelEvent *event)
{
    QRect tmp = this->geometry();
    QPoint centerPoint = tmp.center(); // 储存中心点坐标
 
   
    static int adjustSize = 20;
 
   
    if (event->delta() > 0) // 放大
    {
        tmp.setWidth(tmp.width() + adjustSize);
        tmp.setHeight(tmp.height() + adjustSize);
    }
    else // 缩小
    {
        tmp.setWidth(tmp.width() - adjustSize);
        tmp.setHeight(tmp.height() - adjustSize);
    }
 
   
    if (tmp.width() > 20) // 限制最小尺寸
    {
        tmp.moveCenter(centerPoint); // 从中心缩放而非左上角处
        this->setGeometry(tmp);
    }
}

你可能感兴趣的:(Qt)