是否可以打开PyGTK对象?

时间:2014-04-05 22:45:31

标签: python c gtk pygtk language-binding

我在Python中有一个Gtk.Window对象。这个对象基本上只是GtkWindow *的包装器。是否有可能从C(使用PyObject *)或Python获得GtkWindow *

我有一个用Python编写的应用程序,但某些特定小部件的渲染代码太慢了。我试图在一个备用线程中隔离它,但我认为我得到GIL的位,因为我试图让两个线程做CPU工作。 (后台线程,几乎是100%的CPU,在需要时与UI线程争用太多时间,导致它没有响应。)它很简单,可以在C中编写后台工作者,如果我有指针。

1 个答案:

答案 0 :(得分:0)

如果你有一个PyGObject,它应该是这样的:

PyGObject *py_widget;
GtkWidget *widget;

if (!PyArg_ParseTuple(args, "O!", PyGObject_Type, &py_widget))
    return NULL;
widget = GTK_WIDGET(py_widget->obj);

(摘自http://www.daa.com.au/pipermail/pygtk/2003-November/006292.html) 只有我不知道如何将PyObject转换为PyGObject。