区分gtk.Entry图标

4 投票
2 回答
957 浏览
提问于 2025-04-15 18:49

我正在给一个gtk.Entry添加两个图标,这些图标的信号是通过下面的方法来处理的:

def entry_icon_event(self, widget, position, event)

我想区分这两个图标:

<enum GTK_ENTRY_ICON_PRIMARY of type GtkEntryIconPosition>
<enum GTK_ENTRY_ICON_SECONDARY of type GtkEntryIconPosition>

我该怎么做呢?我查阅了PyGTK的文档,但没有找到GtkEntryIconPosition这个对象,也没有关于这个枚举的定义。

谢谢!

2 个回答

2

好的,因为没有人给出答案,我就分享一下我找到的方法。使用这些图标的方法大概是这样的:

def entry_icon_event(self, widget, icon, event):
    if icon.value_name == "GTK_ENTRY_ICON_PRIMARY":
        print "First Button"
        if event.button == 0:
            print "Left Click":
        else:
            print "Right Click"
    elif icon.value_name == "GTK_ENTRY_ICON_SECONDARY":
        print "Second Button"
        if event.button == 0:
            print "Left Click":
        else:
            print "Right Click"
1

有更好的方法来实现这个:

def entry_icon_event(self, widget, icon, event):
    if icon == gtk.ENTRY_ICON_PRIMARY:
        ...
    elif icon == gtk.ENTRY_ICON_SECONDARY:
        ...

撰写回答