Python PyQt4如何检测控件按下+鼠标滚动

Python PyQt4 how to detect control press + mouse Scroll

我正在开发 app.I 希望有一个放大和缩小的选项。为此,我想让程序在单击控制键并同时滚动鼠标时获取程序,并相应地缩放(向上滚动放大,向下滚动缩小)我一直在做大量的搜索和阅读,但只找到了获得控制按下和鼠标 click-event 的方法,而不是鼠标 scroll-event。我还找到了一种获得鼠标滚动的方法,但无法仅通过控制按下来使其工作。 - 并忽略所有其他印刷机。

有人能给我一些建议吗???

这在一定程度上取决于您的应用程序的结构。 获得 scroll-events 的一种方法是将 wheelEvent 处理程序添加到您的 Widget

def wheelEvent(self, QWheelEvent):
    modifiers = QtGui.QApplication.keyboardModifiers()
    if modifiers == QtCore.Qt.ControlModifier:
        # do your processing

另一种方法可能是在要通过

拦截scroll-events的组件中安装一个事件过滤器
component.viewport().installEventFilter(self)  

(也许您必须在视口上的组件本身 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

希望这对您有所帮助。