我正在(在 python 中)不使用 GTK 的 GDK 编程,只是作为 x11 抽象。这篇文章是我最后的机会。
我的问题是我不知道如何捕获 GDK 窗口的信号/事件或它们的名称。
当我这样做时:
window = gdk.Window(
gdk.get_default_root_window(),
width=400,
height=200,
window_type=gdk.WINDOW_CHILD,
wclass=gdk.INPUT_OUTPUT,
event_mask=gdk.KEY_PRESS_MASK | gdk.MOTION_NOTIFY | gdk.EXPOSURE_MASK)
window.connect("key_press_event", on_key)
我得到:
unknown signal name: key_press_event
GTK 和 PYGTK 引用文献谈论类、函数和常量,但没有谈论它们的相互关系,因此它们无济于事。 是关于 glib 主循环吗?
我需要一些例子。任何好的 GDK 教程或源代码?任何用于捕获 GDK 信号的 glib.MainLoop 示例?
谢谢。
最佳答案
您可以使用gdk_event_handler_set 来设置事件处理程序(这也是gtk 使用的函数)。不知道你使用的是哪个 python 绑定(bind),但我认为你可以轻松找到相应的 python 函数。 (在 gi 中,它只是 Gdk.Event.handler_set)
可以查看here例如(还有一个非 block 示例)。尽管它们在 C 中。
关于python - 没有 GTK 的 GDK 事件处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6456564/