2

我正在尝试在Meego/Qt/QML上实现图片放大/缩小和图片滚动。

我写了一个继承自QLabel的类 A 。

A::A( "parent" )
{
  setAlignment();
  setGeometry();
  setScaledContents();
}

现在我有一个控制器类 B。这个类负责处理从QML到我的类 A 的事件。在我的控制器类中,我以以下方式实例化。

B :: B()
{
 a = new A();
 proxyWidget = new QGraphicsProxyWidget();
 proxyWidget->setWidget(a); 
}

由于这是一个基于QML的应用程序,我正在处理来自 QML 的事件。

对于 Zoom,我使用了PinchArea. 每当我收到事件时,PinchUpdated我都会相应地设置QLabel。我正在放大和缩小。setGeometry

对于滚动,我使用MouseAreaonPositionChanged事件。但是,在调用QLabel的滚动 API 后,我无法滚动标签事件。

有人可以告诉我我在哪里做错了吗?

4

1 回答 1

1

例如,我假设您想使用鼠标滚动进行缩放。

我不擅长,QML但你当然应该在课堂上处理轮子事件A。我不清楚每个 Qt 事件是否都有 QML 等价物,但你总是可以放置 C++ 代码。要实现的功能是:

 virtual void wheelEvent ( QWheelEvent * event );

您有delta变量,可用于确定缩放速度(使用 delta 绝对值)以及它是否应该增长或缩小(使用 delta 的符号)

于 2012-10-30T08:29:10.203 回答