首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有GTK的GDK事件处理

没有GTK的GDK事件处理
EN

Stack Overflow用户
提问于 2011-06-23 23:25:05
回答 2查看 1.2K关注 0票数 3

我在没有GTK的情况下(用python)编写GDK,只是作为一个x11抽象。这篇文章是我最后的机会。

我的问题是我不知道如何捕获GDK窗口的信号/事件,或者它们的名称是什么。

当我这样做的时候:

代码语言:javascript
复制
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)

我得到了:

代码语言:javascript
复制
unknown signal name: key_press_event

GTK和PYGTK参考讨论了类、函数和常量,但没有讨论它们的相互关系,所以它们没有帮助。是关于glib主循环的吗?

我需要一些例子。有什么好的GDK教程或源代码吗?有没有捕获GDK信号的glib.MainLoop示例?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-05 19:37:50

您可以使用gdk_event_handler_set来设置事件处理程序(这也是gtk使用的函数)。我不知道您使用的是哪种python绑定,但我认为您可以很容易地找到相应的python函数。(在gi中,它只是Gdk.Event.handler_set)

你可以在here上查看一个例子(还有一个非块的例子)。虽然它们是用C语言编写的。

票数 1
EN

Stack Overflow用户

发布于 2011-06-24 05:26:52

您正在尝试连接到gtk.Widget信号key-press-eventgdk.Window不是从gtk.Widget继承的,所以它没有这个信号。

在GTK文档中,靠近顶部标签"Object Hierarchy“的小节告诉您类是如何相互关联的。没有GDK教程这样的东西,因为如果没有GTK,人们几乎不会使用它。我也不认为这样做是非常有用的。也许你可以详细说明你想要实现的目标?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6456564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档