首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Qt4.8中处理鼠标滚轮事件

在Qt4.8中处理鼠标滚轮事件
EN

Stack Overflow用户
提问于 2016-08-31 21:05:29
回答 1查看 506关注 0票数 0

在Qt5中,这可以在QML中完成,如下所示。

代码语言:javascript
复制
MouseArea {
    onWheel: {
        if (wheel.modifiers & Qt.ControlModifier) {
            adjustZoom(wheel.angleDelta.y / 120);
        }
    }
}

如何在Qt4.8中实现同样的目标?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-05 19:23:42

看起来我正在重新发明自行车,但现在它是如何工作的。

我有一个能捕获wheelEvent并发送新信号的新QWidget。

代码语言:javascript
复制
void WheelEventCarrier::wheelEvent(QWheelEvent *event)
{
    emit sendWheelEvent(event->delta()/120);
}

我在QML中定义了一个新的信号,并对其进行了处理。

代码语言:javascript
复制
signal wheelEvent(int delta)

onWheelEvent:
{
    if(delta > 0)
        tag_meas_mod.zoomIn(true);
    else
        tag_meas_mod.zoomOut(true);
}

我将我的小部件包装在所有的UI中,并将两个信号连接起来。

代码语言:javascript
复制
WheelEventCarrier carrier;
UI.setParent(&carrier);

QObject::connect(&carrier,
                     SIGNAL(sendWheelEvent(int)),
                     viewer.rootObject(),
                     SIGNAL(wheelEvent(int)));

carrier.show();

希望你能给我一个更好的解决方案。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39250495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档