2012-10-30 4 views
2

이미지 확대/축소 및 그림 스크롤을 Meego/Qt/QML에 구현하려고합니다.QLabel을 스크롤하는 방법은 무엇입니까?

나는 QLabel에서 상속 된 클래스 A를 작성했습니다.

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

는 이제이 클래스는 내가 다음과 같은 방법으로 인스턴스화가 내 컨트롤러 클래스에서 내 클래스 A에 QML 에서 이벤트를 처리 할 담당하는 컨트롤러 클래스 B를 가지고있다. 이 이후

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

내가 QML에서 이벤트를 처리 오전 QML 기반 응용 프로그램입니다.

줌 용 PinchArea을 사용했습니다. PinchUpdated 이벤트가 발생할 때마다 나는 QLabelsetGeometry을 설정하고 있습니다. 확대 및 축소 중입니다.

스크롤의 경우 MouseAreaonPositionChanged 이벤트와 함께 사용했습니다. 그러나 QLabel 스크롤 API를 호출 한 후 레이블 이벤트를 스크롤 할 수 없습니다.

누군가 내가 잘못하고 있다고 말할 수 있습니까?

답변

1

예를 들어 마우스 스크롤을 사용하여 확대/축소하려는 것으로 가정합니다.

나는 QML에 만족하지 못하지만, Awheel events을 반드시 처리해야합니다. 모든 Qt 이벤트에 QML에 상응하는 것이 있으면 분명하지 않지만 언제나 C++ 코드를 넣을 수 있습니다. 구현하는 기능은 다음과 같습니다

virtual void wheelEvent (QWheelEvent * event); 

당신은 (델타 절대 값을 사용) 줌의 속도를 결정하는 데 유용 할 수있는 delta 변수가하고

+0

(델타의 기호를 사용하여) 확장 또는 축소해야하는지 여부 확대/축소가 정상적으로 작동합니다. 내 문제는 스크롤하는 것입니다. 스크롤 영역을 만들면 원하지 않는 스크롤 막대가 표시되고 스크롤 막대를 사용하여 스크롤해야합니다. 화면에 끌기가 필요하고 QLabel이 움직이지 않아야합니다. 스크롤 API를 사용했지만 작동하지 않습니다. – user1592280

+0

휠 이벤트를 사용해야합니다. 그러나이 답변을 업데이트 할 예정입니다. 따라서 사용자가 스크롤 할 때 이미지의 어느 부분이 표시되도록 변경 하시겠습니까? – UmNyobe

관련 문제