【问题标题】:Get the value of scrollbar produce by scrollarea in pyqt4 python获取pyqt4 python中scrollarea产生的滚动条的值
【发布时间】:2012-03-04 05:51:34
【问题描述】:

我使用下面的代码创建了一个带有滚动功能的框架。在框架内,我创建了另一个可以拖放的小部件。问题是当存在垂直滚动条时,假设您向下滚动它然后拖放对象,对象会落在错误的 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)

【问题讨论】:

    标签: python pyqt4 qscrollarea


    【解决方案1】:

    您可以通过以下方式获取滚动条的值:

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

    但可能需要计算额外的偏移量。

    您还可以使用QWidget.mapFrommapTomapFromGlobalmapToGlobal 将鼠标坐标映射到滚动区域内小部件的相对坐标。

    例如,如果主窗口是接收事件的小部件:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-20
      • 2012-11-05
      • 1970-01-01
      • 2021-11-23
      相关资源
      最近更新 更多