【问题标题】:Differentiate gtk.Entry icons区分 gtk.Entry 图标
【发布时间】:2017-09-01 10:14:45
【问题描述】:

我正在向 PyGTK 中的 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 也没有任何关于这个枚举的定义。

谢谢

【问题讨论】:

  • 好吧,看来我可以使用返回枚举名称的 position.value_name 进行比较。另外,通过创建一个新对象,例如: x = gtk._gtk.EntryIconPosition(0) for PRIMARY x = gtk._gtk.EntryIconPosition(1) for SECONDARY 然后比较对象。

标签: python icons pygtk gtkentry


【解决方案1】:

好吧,既然没有人给出答案,我会用我实际找到的东西做。使用此图标的方法如下所示:

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"

【讨论】:

    【解决方案2】:

    有更好的方法:

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

    【讨论】:

    • 酷,我知道应该有更好的方法来做到这一点。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-25
    • 1970-01-01
    • 1970-01-01
    • 2018-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多