1

私はGtk.WindowPythonでオブジェクトを持っています。このオブジェクトは、基本的に のラッパーにすぎませんGtkWindow *。C(を使用PyObject *)またはPythonから、それを取得することは可能GtkWindow *ですか?

私は Python で書かれたアプリを持っていますが、特定のウィジェットのレンダリング コードの一部が遅すぎます。別のスレッドでそれを分離しようとしましたが、2 つのスレッドに CPU の作業をさせようとしているので、GIL の影響を受けていると思います。(ほぼ 100% の CPU を使用しているバックグラウンド スレッドは、必要なときに UI スレッドから離れてあまりにも長い時間戦っているため、応答しなくなります。) バックグラウンド ワーカーを C で記述するのは簡単です。ポインタを持っていました。

4

1 に答える 1

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 に変換する方法がわかりません。

于 2014-09-12T20:04:28.350 に答える