2011-08-14 6 views
9

사용자가 스크롤바 위치를 다른 곳으로 이동했는지 감지하기위한 이벤트가 필요합니다.스크롤 할 때 스크롤바 이벤트가 발생합니까?

즉, 사용자가 위/아래로 스크롤하면 신호를 포착하여 스크롤의 위치가 변경되었음을 알 수 있습니까?

중요하지는 않지만 내가 언급 한 스크롤바는 QGraphicsView 안에 있습니다.

감사합니다.

편집 :

QGraphicsView 화면에서 항목을 표시하고, 해당 항목이 너무 큰 경우 내가 참조 스크롤바를 보여줍니다. 내가 필요한 것은 사용자가 언제 스크롤 바의 위치를 ​​바꿀지를 아는 것입니다.

답변

6

슬라이더에는 sliderMoved(int value) 신호가 있습니다. 여기서 value는 슬라이더의 새 위치입니다.

+0

이 페이지 (http://doc.qt.nokia.com/latest/qslider.html)를 읽었지만 QGraphicsView에는 포함되지 않았습니다. 이 둘의 차이점은 QSlider가 비디오 플레이어 용 슬라이더 또는 그런 것들에 사용되는 것 같습니다. QGraphicsView는 화면에 항목을 표시하기위한 것이며, 항목이 너무 크면 내가 참조하는 스크롤 막대를 표시합니다. 내가 필요한 것은 사용자가 언제 스크롤 바의 위치를 ​​바꿀지를 아는 것입니다. – Manolo

+0

QGraphicsView에서 horizontalScrollBar 및 verticalScrollBar에 액세스 할 수 없습니까? –

+1

오, 그래. 네가 내 친구 야. verticalScrollBar() 메서드를 사용하여 액세스하려는 기능을 수행 할 수있었습니다. 나는 "valueChanged()"신호를 사용했다. 감사!! – Manolo

0

스크롤 막대 위치가 변경되었을 때 알림을 받아야하는 경우 QGraphicsView을 서브 클래스 화하고 QWidget::mouseMoveEvent(QMouseEvent*)을 다시 구현해야합니다. 이를 위해 마우스 추적을 활성화해야합니다. Here is Qt 4.7 QGraphicsView reference.

+0

이 솔루션은 다른 게시물에서 말했듯이, 메서드와 함께 스크롤바에 액세스하여 찾고 있던 신호를 사용하고있었습니다. 어쨌든, 당신의 대답에 감사드립니다 ^^. – Manolo

관련 문제