我在 Python 中有一个 Gtk.Window
对象。这个对象本质上只不过是 GtkWindow *
的包装器。是否有可能从 C(使用 PyObject *
)或 Python 获取 GtkWindow *
?
我有一个用 Python 编写的应用程序,但某些特定小部件的渲染代码太慢了。我试图将它隔离在备用线程中,但我认为我被 GIL 咬住了,因为我试图让两个线程执行 CPU 工作。 (后台线程的 CPU 使用率接近 100%,在需要时与 UI 线程争用了太多时间,导致它无响应。)用 C 编写后台工作程序就足够简单了,如果我有指针。
最佳答案
如果你有一个 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。
关于python - 是否可以打开 PyGTK 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22887824/