如何在 GTK3 和 Python 2.7 中的图像对象上创建“点击事件”

Posted

技术标签:

【中文标题】如何在 GTK3 和 Python 2.7 中的图像对象上创建“点击事件”【英文标题】:How can I create a 'Click Event' on Image object in GTK3 and Python 2.7 【发布时间】:2017-04-04 13:22:32 【问题描述】:

我正在使用 Python 2.7 和 GTK3+ 和 Glade 在 Linux 下创建一个程序。我有一个 Image 对象,并希望在单击图像时运行一个方法。 这是对象

<object class="GtkImage" id="imageHiResVisual">
    <property name="visible">True</property>
    <property name="can_focus">False</property>
    <property name="tooltip_text" translatable="yes">Click here to switch between British Isles Image and Ireland</property>
    <property name="hexpand">True</property>
    <property name="vexpand">True</property>
    <property name="stock">gtk-missing-image</property>
    <signal name="button-press-event" handler="on_imageHiResVisual_button_press_event" swapped="no"/>
</object>

和事件处理程序

def on_imageHiResVisual_button_press_event(self, widget, data=None):
    print "I am clicked!"

除了“按钮按下事件”之外,我找不到任何可能起作用的事件。 我有一些按钮在单击时可以正常工作,为什么单击图像时此方法不起作用?

【问题讨论】:

【参考方案1】:

Gtk.Image 只是一个被动组件,它不会对按钮点击做出反应。最简单的做法是将其放在Gtk.EventBox 中并对事件框的点击做出反应。

【讨论】:

标题不需要加“SOLVED”;而是单击绿色复选标记。这给了我们俩一个奖励。 感谢您,我确实阅读了教程,但显然错过了重要的信息。我确实试图投票给你,但我还不允许投票。

以上是关于如何在 GTK3 和 Python 2.7 中的图像对象上创建“点击事件”的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Python 和 Gtk3 中使用 Pango.AttrType.FOREGROUND?

如何使用 Cairo 和 Gtk3 在 GtkDrawingArea 中绘制一条线

在 Python 中构建 Gtk3 应用程序的正确方法

Python Gtk3从textview获取文本

无法将 CSS 应用于 GtkEntry 小部件(GTK3 / gi / Python)不工作

python:2.7-alpine 在 Docker 中的 psycopg2 安装