2012-10-30 54 views
2

我想實現圖片放大/縮小和圖片滾動Meego/Qt/QML如何滾動QLabel?

我寫了一個繼承自QLabel的A類。

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

現在我有一個控制器B類該類負責從處理事件QML到我的A類在我的控制器類我有實例以下列方式。

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

由於這是一個QML基於應用我從QML處理事件。

For Zoom我已使用PinchArea。每當我收到PinchUpdated事件時,我都會相應地設置QLabelsetGeometry。我正在放大和縮小。

對於滾動我已使用MouseAreaonPositionChanged事件。但是,我無法在調用QLabel的滾動API後滾動標籤事件。

有人能告訴我我在哪裏做錯了嗎?

回答

1

我假設你想要使用鼠標滾動縮放例如。

我不擅長QML但您當然應該在您的班級A中處理wheel events。我不清楚每個Qt事件是否具有QML等價物,但您始終可以放置C++代碼。要實現的功能是:

virtual void wheelEvent (QWheelEvent * event); 

你有delta變量可以是確定的變焦速度有用的(使用增量絕對值)以及是否應擴大或縮小(採用三角形符號)

+0

縮放工作正常。我的問題是滾動。如果我創建一個滾動區域,它將顯示我不想要的滾動條,我需要使用滾動條來滾動它。我需要在屏幕上拖動,並且QLabel應該移動,這不會發生。我已經使用滾動API,但它不起作用 – user1592280

+0

你仍然需要使用輪子事件。但我要更新這個答案。所以當用戶滾動時,你想要改變圖像的哪一部分? – UmNyobe