我在Python中有一个Gtk.Window
对象。这个对象基本上只是GtkWindow *
的包装器。是否有可能从C(使用PyObject *
)或Python获得GtkWindow *
?
我有一个用Python编写的应用程序,但某些特定小部件的渲染代码太慢了。我试图在一个备用线程中隔离它,但我认为我得到GIL的位,因为我试图让两个线程做CPU工作。 (后台线程,几乎是100%的CPU,在需要时与UI线程争用太多时间,导致它没有响应。)它很简单,可以在C中编写后台工作者,如果我有指针。
答案 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。