有没有更好的方法来处理 pygobject 中的双击
Is there a better way to handle double click in pygobject
我一直在使用以下方法来处理双击:
def do_button_press_event(self, eb: Gdk.EventButton):
if eb.type == Gdk.EventType._2BUTTON_PRESS:
# todo: code double click
pass
访问 private 属性 _2BUTTON_PRESS
感觉有点脏。有没有更好的方法来处理这个问题?
它不是私有的 属性:它是 C 枚举成员 GDK_2BUTTON_PRESS
的产物。 Python 不允许标识符以数字开头,所以在将 GdkEventType
C 枚举中的符号 GDK_2BUTTON_PRESS
翻译成 Gdk.EventType
Python 中的字段时 class, PyGOBject 需要转义 2BUTTON_PRESS
部分。
为了避免这种情况,GTK 引入了 GDK_DOUBLE_BUTTON_PRESS
,正确翻译为 Gdk.EventType.DOUBLE_BUTTON_PRESS
。
同样的解释也适用于 GDK_3BUTTON_PRESS
/GDK_TRIPLE_BUTTON_PRESS
枚举字段。
我一直在使用以下方法来处理双击:
def do_button_press_event(self, eb: Gdk.EventButton):
if eb.type == Gdk.EventType._2BUTTON_PRESS:
# todo: code double click
pass
访问 private 属性 _2BUTTON_PRESS
感觉有点脏。有没有更好的方法来处理这个问题?
它不是私有的 属性:它是 C 枚举成员 GDK_2BUTTON_PRESS
的产物。 Python 不允许标识符以数字开头,所以在将 GdkEventType
C 枚举中的符号 GDK_2BUTTON_PRESS
翻译成 Gdk.EventType
Python 中的字段时 class, PyGOBject 需要转义 2BUTTON_PRESS
部分。
为了避免这种情况,GTK 引入了 GDK_DOUBLE_BUTTON_PRESS
,正确翻译为 Gdk.EventType.DOUBLE_BUTTON_PRESS
。
同样的解释也适用于 GDK_3BUTTON_PRESS
/GDK_TRIPLE_BUTTON_PRESS
枚举字段。