2014-04-05 2 views
1

나는 Gtk.Window 개체를 파이썬에 가지고 있습니다. 이 객체는 본질적으로 GtkWindow *을 감싼 래퍼입니다. C (PyObject *) 또는 Python을 사용하면 GtkWindow *이 가능합니까?PyGTK 객체의 포장을 풀 수 있습니까?

파이썬으로 작성된 앱이 있지만 특정 위젯의 렌더링 코드 중 일부가 너무 느립니다. 내가 대체 스레드에서 그것을 분리하려고 시도하지만, 나는 GIL에 의해 조금 이해하고있다. 왜냐하면 나는 두 개의 스레드가 CPU 작업을하려고 시도하기 때문이다. (거의 100 % CPU 인 백그라운드 스레드는 필요에 따라 UI 스레드에서 너무 많은 시간을 쳐서 반응이 없습니다.) 백그라운드 작업자를 C로 작성하는 것은 간단합니다. 포인터가 있었어.

답변

0

당신이 이런 식으로 이동해야 PyGObject이있는 경우 :

( http://www.daa.com.au/pipermail/pygtk/2003-November/006292.html에서 촬영)
PyGObject *py_widget; 
GtkWidget *widget; 

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

만 내가 PyGObject에의 PyObject를 변환하는 방법을 모르겠어요.

관련 문제