Получить значение полосы прокрутки по scrollarea в pyqt4 python - PullRequest
1 голос
/ 04 марта 2012

Я создал кадр с прокруткой, используя код ниже. И внутри рамки я создал еще один виджет, который можно перетаскивать. Проблема в том, что когда вертикальная полоса прокрутки присутствует и, допустим, вы прокручиваете ее вниз, а затем перетаскиваете объект, объект падает с неправильными координатами y. Могу ли я получить значение полосы прокрутки, а затем добавить его к координате y? Или есть другие способы решить это? Заранее спасибо:)

#Main Layout 
layout = QtGui.QVBoxLayout() 
layout.setSpacing(0)         
self.centralWidget.setLayout(layout) 

#Content Layout 
self.frame = QtGui.QFrame()
self.frame.setMinimumSize(400, 1000)

self.scrollArea = QtGui.QScrollArea() 
self.scrollArea.setWidget(self.frame)
self.scrollArea.setWidgetResizable(True)
layout.addWidget(self.scrollArea)

1 Ответ

2 голосов
/ 05 марта 2012

Вы можете получить значение полосы прокрутки с помощью:

yOffset = self.scrollArea.verticalScrollBar().value()

Но для вычисления может потребоваться дополнительное смещение.

Вы также можете сопоставить координаты мыши с относительными координатамивиджета внутри области прокрутки с помощью QWidget.mapFrom, mapTo, mapFromGlobal или mapToGlobal.

Например, если главное окно - это виджет, получающий событие:

def dropEvent(self, event):
    pos = self.frame.mapFrom(self, event.pos())
...