1.声明
void wheelEvent(QWheelEvent *event) override;
2.实现(方便复制、测试起见用静态变量)
#include <mutex>
void MainWindow::wheelEvent(QWheelEvent *event)
{static QLabel *label = new QLabel("Zoom Level: 100%", this);static int zoomLevel = 100; // 初始缩放等级为100%{ // initstatic std::once_flag winner_flag;std::call_once(winner_flag,[&,this](){label->setAlignment(Qt::AlignCenter);setCentralWidget(label);resize(400, 300);});}// 检查滚轮的方向if (event->angleDelta().y() > 0) {zoomLevel += 10; // 向上滚动放大} else {zoomLevel -= 10; // 向下滚动缩小}zoomLevel = qMax(10, zoomLevel); // 设置最小缩放等级为10%label->setText(QString("Zoom Level: %1%").arg(zoomLevel));
}
结果: