python - 没有 GTK 的 GDK 事件处理

标签 python glib gdk

我正在(在 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/

相关文章:

c++ - 怎么可能锁定 GMutex 两次?

gtk _get_type()函数实现

c++ - 从字符串加载 Gdk Pixbuf

python - 如何使用 argparse 让用户更改现有程序的输出?

python - 是否可以在Python中使用Combobox更改FigureCanvas?

python - 如何查询django m2m满足多个要求的单个实例?

python - 为什么我们要在 button_press_event.handler 的最后返回 True?

python - 使用 requests_mock 检查请求中的查询字符串

c - 使用 Linux 接收系统 key 的信号?

python - pygtk WINDOW_TYPE_HINT_DOCK 不适用于 Windows