我想在 PyQT 中找出如何设置鼠标滚轮事件?
我需要它,以便我可以将其附加到 Qscroll 区域
我使用的代码工作正常。但大小是硬编码的。我需要它以某种方式动态调整,具体取决于滚轮(鼠标上)的使用方式......就像我向上滑动鼠标滚轮时一样。我的框架的高度会扩展(例如每刻度 50 像素),反之亦然。
self.scrollArea = QtGui.QScrollArea()
#set the parent of scrollArea on the frame object of the computers
self.scrollArea.setWidget(self.ui.Main_Body)
self.scrollArea.setWidgetResizable(True)
#add the verticalLayout a object on PYQT Designer (vlayout is the name)
#drag the frame object of the computers inside the verticalLayout
#adjust the size of the verticalLayout inside the size of the frame
#add the scrollArea sa verticalLayout
self.ui.verticalLayout.addWidget(self.scrollArea)
self.ui.Main_Body.setMinimumSize(400, 14000)
最后一部分是我想要增强的。我不希望它被硬编码为 14000 值。
感谢任何愿意提供帮助的人。我希望给出的示例代码也可以帮助其他有需要的人。
)
我可能对你的问题有点困惑,但这里有一个关于如何访问调整窗口大小的滚轮事件的示例。如果您使用的是 QScrollArea,我不知道您为什么要这样做。
from PyQt4.QtGui import *
from PyQt4.QtCore import *
import sys
class Main(QWidget):
def __init__(self, parent=None):
super(Main, self).__init__(parent)
layout = QHBoxLayout(self)
layout.addWidget(Scroll(self))
class Scroll(QScrollArea):
def __init__(self, parent=None):
super(Scroll, self).__init__(parent)
self.parent = parent
def wheelEvent(self, event):
super(Scroll, self).wheelEvent(event)
print "wheelEvent", event.delta()
newHeight = self.parent.geometry().height() - event.delta()
width = self.parent.geometry().width()
self.parent.resize(width, newHeight)
app = QApplication(sys.argv)
main = Main()
main.show()
sys.exit(app.exec_())
如果您查看文档Q滚动区域你会看到继承自的行QWidget
有一个名为的函数的类wheelEvent
。您可以将其放入并覆盖继承的函数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)