2009-09-08 2 views
0

내가 지금까지 가지고있는 기본 코드는 아래와 같습니다. Display가 초기화 된 후 코드가 비동기 적으로 실행되도록 gtk.main()을 어떻게 스레드합니까?pygtk에서 gtk.main()을 비동기 적으로 실행할 수 있습니까?

import pygtk 
pygtk.require("2.0") 
import gtk 

class Display(): 

    def __init__(self): 
     self.fail = "This will fail to display" 
     window = gtk.Window(gtk.WINDOW_TOPLEVEL) 
     window.connect("destroy", lambda w: gtk.main_quit()) 
     window.show() 
     self.main()    

    def main(self): 
     gtk.main() 

class Test(): 

    def __init__(self, display): 
     print display.fail 

d = Display() 
t = Test(d) 
+0

달성하려는 목표는 무엇입니까? 당신이 해결하고자하는 진짜 문제는 무엇입니까? –

+0

gtk 창과 다른 클래스의 다양한 요소를 제어하려고합니다. – aberkowitz

+0

프로그램에는 하나의 메인 루프 만 있어야합니다. Display 클래스에 의해 제어되지 않아야합니다. – u0b34a0f6ae

답변

0

다른 모든 것 다음에 gtk.main 전화를 걸면됩니다. 컨트롤러가 별도의 스레드에 있어야하는 경우 gobject.idle_add (widget.method)를 실행하여 gtk 관련 함수/메서드를 모두 수행해야합니다.

관련 문제