我正在尝试在 Meego / Qt / QML 上实现图片放大/缩小和图片滚动。
我写了一个继承自 QLabel 的A类。
A::A( "parent" )
{
setAlignment();
setGeometry();
setScaledContents();
}
现在我有一个Controller类B.这个类负责处理从 QML 到我的A类的事件。在我的控制器类中,我用以下方式实例化。
B :: B()
{
a = new A();
proxyWidget = new QGraphicsProxyWidget();
proxyWidget->setWidget(a);
}
由于这是一个基于 QML 的应用程序,我正在处理来自QML的事件。
对于缩放,我使用了PinchArea
。每当我收到PinchUpdated
事件时,我都会相应地设置 QLabel 的setGeometry
。我正在放大并缩小。
对于滚动,我使用了MouseArea
与onPositionChanged
事件。但是,在调用 QLabel 的滚动API后,我无法滚动标签事件。
有人可以告诉我,我在哪里做错了吗?
答案 0 :(得分:1)
我假设您想要使用鼠标滚动进行缩放。
我不擅长QML
,但您当然应该在班级A
处理wheel events。我不清楚每个Qt事件是否都有QML等价物,但你总是可以输入C ++代码。要实现的功能是:
virtual void wheelEvent ( QWheelEvent * event );
你有delta变量可用于确定缩放速度(使用delta绝对值)以及是否应该增大或缩小(使用delta的符号)