在Python GTK3中收听Control +鼠标滚轮滚动事件

时间:2018-08-08 20:34:52

标签: python gtk gtk3

我正在构建一个Python GTK应用程序,我需要听“ Ctrl +鼠标轮”事件。我想在Webview中实现“缩放”功能。我需要设置加速器吗?如果是,鼠标滚轮的键码是什么?

关于这些主题的文档并不多。

有帮助吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

由于发生了很多次,所以在发帖后我找到了解决方案:)

这里是:

在网络视图上收听“滚动事件”:

 self.connect('scroll-event', self.on_scroll)

信号处理程序

 def on_scroll(self, widget, event):
    """ handles on scroll event"""

   # Handles zoom in / zoom out on Ctrl+mouse wheel
   accel_mask = Gtk.accelerator_get_default_mod_mask()
   if event.state & accel_mask == Gdk.ModifierType.CONTROL_MASK:
     direction = event.get_scroll_deltas()[2]
     if direction > 0:  # scrolling down -> zoom out
        self.set_zoom_level(self.get_zoom_level() - 0.1)
     else:
        self.set_zoom_level(self.get_zoom_level() + 0.1)

参考:GDK signal, keypress, and key masks