2011-08-14 39 views
9

Bir kullanıcının kaydırma çubuğu konumunu başka birine taşıdığını algılamak için bir olaya ihtiyacım var. Diğer bir deyişle, kullanıcı yukarı/aşağı kaydırıyorsa, bir sinyal yakalamak mümkün olabilirdi, böylece kaydırmanın yerini değiştirdiğini bilemem mümkün olur mu?Kaydırma yaparken bir kaydırma çubuğu etkinliği mi?

Bence bu önemli değil, ama atladığım kaydırma çubuğu QGraphicsView'un içinde.

Saygılarımızla.

Düzenleme:

QGraphicsView ekrana öğeleri görüntüleme içindir ve bu öğeler çok büyük eğer ben atıfta kaydırma çubukları gösterir. İhtiyacım olan şey, kullanıcının bu kaydırma çubuklarının konumunu değiştirdiğinde bilmek.

cevap

6

Kaydırıcıların değeri, kaydırıcının yeni konumu olan sliderMoved(int value) işaretine sahiptir.

+0

Bu sayfayı okudum (http://doc.qt.nokia.com/latest/qslider.html), ancak QGraphicsView'a değil. Bu ikisi arasındaki fark, QSlider'ın bir video oynatıcısı için bir kaydırıcı gibi şeyler ya da bunun gibi şeyler için kullanıldığı görünüyor. QGraphicsView, ekrandaki öğeleri görüntülemek içindir ve bu öğeler çok büyükse, atıfta bulunduğum kaydırma çubuklarını gösterir. İhtiyacım olan şey, kullanıcının bu kaydırma çubuklarının konumunu değiştirdiğinde bilmek. – Manolo

+0

QGraphicsView'dan horizontalScrollBar ve verticalScrollBar erişiminiz yok mu? –

+1

Oh, evet. Haklısın dostum. VerticalScrollBar() yöntemiyle ona erişmek istediğimi yapabildim. "ValueChanged()" sinyalini kullandım. Teşekkürler!! – Manolo

0

Kaydırma çubuğu konumu değiştirildiğinde bildirim almanız gerekiyorsa, QGraphicsView'u alt sınıflara ayırıp QWidget::mouseMoveEvent(QMouseEvent*)'u yeniden oluşturmalısınız. Bunun için de fare izlemeyi etkinleştirmeniz gerekiyor. Here is Qt 4.7 QGraphicsView reference.

+0

Çözüm, başka bir gönderide de söylediğim gibi, yöntemleri ile kaydırma çubuklarına erişiyor ve aradığım sinyalleri kullanıyordu. Neyse, cevabınız için teşekkürler ^^. – Manolo

İlgili konular