我正在使用pywebkitgtk,这是一个codegen'd绑定 - 因此有大量的GObject子类。绑定不完整,我还使用ctypes来做一堆东西。
但是现在我需要使用Python中的对象 - 作为ctypes库调用的参数。显然,这不起作用,并且传递Python对象的内存地址也不是真正的胜利者。如何获得支持Python对象的GObject的内存引用?
这是一个不起作用的例子,但可能会让你知道我在说什么。
>>> import ctypes
>>> libwebkit = ctypes.CDLL('libwebkit-1.0.so')
>>> import webkit
>>> webview = webkit.WebView()
>>> libwebkit.webkit_web_view_get_zoom_level(webview) #yes, I know the binding exposes this
ArgumentError: argument 1: <type 'exceptions.TypeError'>: Don't know how to convert parameter 1
同样,这只是一个例子来说明这一点 - 我希望gobjects的内存引用与ctypes一起使用。