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

问题描述 投票:1回答:1

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

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

有帮助吗?

谢谢。

python gtk gtk3
1个回答
1
投票

因为它发生了很多次,在SO发布后我找到了解决方案:)

这里是:

在webview上收听“滚动事件”:

 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

© www.soinside.com 2019 - 2024. All rights reserved.