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
希望这对您有所帮助。
我正在开发 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
希望这对您有所帮助。