2011-08-14 49 views
9

Tôi cần một sự kiện để phát hiện nếu người dùng đã di chuyển vị trí thanh cuộn sang vị trí khác.Sự kiện thanh cuộn khi cuộn?

Nói cách khác, nếu người dùng di chuyển lên/xuống, có thể bắt tín hiệu để tôi có thể biết cuộn đã được thay đổi vị trí của nó không?

Tôi nghĩ điều đó không quan trọng, nhưng thanh cuộn tôi tham chiếu nằm bên trong một QGraphicsView.

Trân trọng.

Edit:

QGraphicsView là để hiển thị các mục trong màn hình, và nếu những mục này quá lớn nó cho thấy thanh cuộn Tôi tham khảo. Điều tôi cần biết là khi người dùng thay đổi vị trí của các thanh cuộn đó.

Trả lời

6

Thanh trượt có tín hiệu sliderMoved(int value), trong đó giá trị là vị trí mới của thanh trượt.

+0

Tôi đã đọc trang này (http://doc.qt.nokia.com/latest/qslider.html), nhưng nó không nằm trong QGraphicsView. Sự khác biệt giữa hai loại đó là QSlider dường như được sử dụng cho những thứ như một thanh trượt cho máy quay video, hoặc những thứ tương tự. QGraphicsView là để hiển thị các mục trong màn hình và nếu các mục đó quá lớn, nó sẽ hiển thị các thanh cuộn mà tôi tham chiếu đến. Điều tôi cần biết là khi người dùng thay đổi vị trí của các thanh cuộn đó. – Manolo

+0

Bạn không có quyền truy cập vào horizontalScrollBar và verticalScrollBar từ QGraphicsView? –

+1

Ồ, vâng. Bạn đúng người bạn của tôi. Tôi đã có thể làm những gì tôi muốn truy cập vào nó với phương thức verticalScrollBar(). Tôi đã sử dụng tín hiệu "valueChanged()" của nó. Cảm ơn!! – Manolo

0

Nếu bạn cần được thông báo khi vị trí thanh cuộn được thay đổi, bạn cần phải phân lớp QGraphicsView và triển khai lại QWidget::mouseMoveEvent(QMouseEvent*). Đối với điều này, bạn cũng cần phải kích hoạt tính năng theo dõi chuột. Here is Qt 4.7 QGraphicsView reference.

+0

Giải pháp đã truy cập vào thanh cuộn bằng các phương pháp của nó và sử dụng các tín hiệu tôi đang tìm kiếm, như tôi đã nói trong một bài đăng khác. Dù sao, cảm ơn câu trả lời của bạn ^^. – Manolo