Che*_*uel 4 python events pyqt mousewheel pyqt4
我正在开发一个应用程序。我希望有一个放大和缩小的选项。为此,我想让程序在单击控制键并且同时滚动鼠标时获得,并相应地缩放(向上滚动以放大,向下滚动以缩小)我一直在做大量搜索和阅读,但只找到了获取控件按下和鼠标单击事件的方法,而不是获取鼠标滚动事件的方法。我还找到了一种获得鼠标滚动的方法,但无法仅通过按控制键来使其工作。- 并忽略所有其他压力。
有人可以建议一些东西来帮助我吗???
这在一定程度上取决于您的应用程序的结构。获取滚动事件的一种方法是wheelEvent
向您的 Widget 添加一个处理程序
def wheelEvent(self, QWheelEvent):
modifiers = QtGui.QApplication.keyboardModifiers()
if modifiers == QtCore.Qt.ControlModifier:
# do your processing
Run Code Online (Sandbox Code Playgroud)
另一种方法可能是在要拦截滚动事件的组件中安装 eventFilter
component.viewport().installEventFilter(self)
Run Code Online (Sandbox Code Playgroud)
(也许您必须在视口上的组件本身 iso 上安装事件过滤器)。
并且self
有一个eventFilter
类似的功能
def eventFilter(self, qobject, event):
if (event.type() == QtCore.QEvent.Wheel) :
modifiers = QtGui.QApplication.keyboardModifiers()
if modifiers == QtCore.Qt.ControlModifier:
#do some scaling stuff
return True
return False
else:
# standard event processing
return False
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助。