我正在编程(在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引用只讨论类、函数和常量,而不讨论它们之间的相互关系,因此它们没有帮助。
是关于油腻的主回路吗?
我需要一些例子。有什么好的GDK教程或源代码吗?有没有glib.MainLoop捕获GDK信号的例子?
谢谢您。

最佳答案

可以使用gdk_event_handler_set设置事件处理程序(gtk也使用该函数)。不知道使用哪种python绑定,但我认为您可以很容易地找到相应的python函数。(在gi中,它只是Gdk.Event.handler\u set)
您可以检查here作为示例(还有一个非块示例)。尽管他们在C。

10-08 12:47