python - 是否可以打开 PyGTK 对象?

标签 python c gtk pygtk language-binding

我在 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/

相关文章:

python - 管理中的动态选择选项

c - 使用 Nucleo-f401re 板从 Lepton FLIR 相机获取连续流

c - 在 C 中为 8 位 MCU 做除法的最快方法是什么?

c - C 中的指针 : Is cell=&num equivalent to *cell=num?

c - 如何从一个按钮发送信号,而其他按钮的回调函数没有将信号返回到 GTK+ 中的 main()

linux - Ubuntu GTK3 Eclipselink

eclipse - Ubuntu + Eclipse 4.2 - 深色主题 - 如何使侧边栏背景变暗?

python - 计算由唯一来源发布的两条新闻之间的平均每日时间量

python - 将二维 C 数组传递给 python numpy

python - 停止点击(python 模块)捕捉/处理 KeyboardInterrupt