Python 如何从PyGObject获取GObject.Callback?

Python 如何从PyGObject获取GObject.Callback?,python,python-3.x,pygobject,gobject,gobject-introspection,Python,Python 3.x,Pygobject,Gobject,Gobject Introspection,我正在尝试使用Gtk.Builder.add_callback_symbol向Gtk.Builder添加回调函数。我试图向它传递一个python函数,但这不起作用。说我需要传递一个GObject.Callback,所以我试图通过调用GObject.Callback(myfunc)来强制转换一个,但得到了一个NotImplementedError。上面说我需要使用名为G_CALLBACK的东西来进行类型转换。但在PyGObject中似乎没有提到这一点,我在这一点上迷失了方向 我想事先说一下,我知道

我正在尝试使用
Gtk.Builder.add_callback_symbol
Gtk.Builder
添加回调函数。我试图向它传递一个python函数,但这不起作用。说我需要传递一个
GObject.Callback
,所以我试图通过调用
GObject.Callback(myfunc)
来强制转换一个,但得到了一个
NotImplementedError
。上面说我需要使用名为
G_CALLBACK
的东西来进行类型转换。但在PyGObject中似乎没有提到这一点,我在这一点上迷失了方向


我想事先说一下,我知道也可以通过使用“Gtk.Builder.connect_signals”添加回调,但这不是这里的问题。

GObject.callback函数只是出于文档目的。您只需传递一个与回调类型的签名匹配的函数,在本例中是一个不带任何参数且没有返回值的函数。

说瘦就很奇怪了,但是:您的代码适合我:也许您应该清理python缓存?我在Debian 8上。GTK3.14(我必须在glade文件中修复),python 3.4.2。当我点击按钮时,我看到弹出窗口。顺便说一句,不可能启动2个app@AlexanderDmitriev非常感谢您的反馈。我会设法找出我这边出了什么问题。其目的是,您不能运行两个或多个实例。您可以在v0.1.0上运行,但现在我正在实现对多个文件的管理。目前,每个新实例都会立即退出,但第一个实例应该通过打开窗口并将消息打印到
stderr
来响应事件。好吧,这是我首先尝试的,但正如我所写的,它没有任何效果。直到今天,我还没有弄清楚到底出了什么问题,但我决定继续向
connect\u signals
传递一个字典,因为它似乎比在提供相同抽象级别的情况下再次调用一个函数更干净。