我正在尝试在Meego/Qt/QML上实现Picture Zoom /Out和Picture Scroll。
我写了一个A类,它是从QLabel继承来的。
A::A( "parent" )
{
setAlignment();
setGeometry();
setScaledContents();
}现在我有了一个控制器类B。这个类负责处理从QML到my的事件。在我的控制器类中,我用以下方式进行实例化。
B :: B()
{
a = new A();
proxyWidget = new QGraphicsProxyWidget();
proxyWidget->setWidget(a);
}因为这是一个基于QML的应用程序,所以我正在处理来自QML的事件。
对于Zoom,我使用了PinchArea。每当我得到PinchUpdated事件时,我就相应地设置QLabel的setGeometry。我在放大和放大。
对于滚动,我使用了MouseArea和onPositionChanged事件。但是,在调用QLabel的滚动API之后,我无法滚动label事件。
有人能告诉我我哪里做错了吗?
发布于 2012-10-30 08:29:10
例如,我假设您希望使用鼠标滚动来缩放。
我不擅长QML,但您当然应该在您的类A中处理车轮事件。对于我来说还不清楚每个Qt事件是否都有一个QML等价,但是您总是可以放入C++代码。执行的职能是:
virtual void wheelEvent ( QWheelEvent * event );您有一个德尔塔变量,它可以用来确定缩放的速度(使用增量绝对值),以及它是应该增长还是缩小(使用增量符号)。
https://stackoverflow.com/questions/13132485
复制相似问题