2012-11-24 5 views
5

파이썬 콘솔과 파이썬 스크립트를 사용하여 동일한 코드에서 다른 동작이 발생합니다. 다음파이썬 콘솔과 파이썬 스크립트 간의 동작이 다릅니다.

코드는 :

import gtk 
import webkit 
win = gtk.Window() 
win.show() 
web = webkit.WebView() 
win.add(web) 
web.show() 
web.open("http://www.google.com") 

파이썬 콘솔에서 코드를 실행하는, 출력 구글 메인 페이지를 포함하는 새로운 프레임이다.

코드를 스크립트로 실행하면 결과가 void 프레임이됩니다. 그것은 매우 빠르지 만 지연 기능을 사용하더라도 웹킷은 프레임에 추가되지 않습니다.

어떻게 가능합니까?

또한 PyDev IDE를 사용하여 "unresolved import : gtk", 플래그를 지정하지만 프로젝트를 실행하면 프로그램이 컴파일 문제없이 시작됩니다. 정상입니까?

답변

8

스크립트의 끝에

gtk.main() 

를 추가합니다. 그러면 gtk 이벤트 루프가 시작됩니다.


import gtk 
import webkit 

class App(object): 
    def __init__(self): 
     win = gtk.Window() 
     win.connect("destroy", self.destroy) 
     web = webkit.WebView() 
     web.open("http://www.google.com") 
     win.add(web) 
     web.show() 
     win.show() 
    def destroy(self, widget, data = None): 
     gtk.main_quit() 
app = App() 
gtk.main() 
+0

로부터 응답 : D 그것은 작동하지 않습니다! 고맙습니다, pydev가 gtk 라이브러리를 인식하지 못하는 이유를 알고 싶지만 어쨌든 컴파일합니까? – Luca

+0

죄송합니다, pydev에 대한 경험이 없습니다. – unutbu

+0

@PhantomFav 그것이 효과가 있기 때문에 [** 대답 ** 수락 (http://meta.stackexchange.com/a/5235/164313)]하실 수 있습니다. – phant0m

1

내 생각에 콘솔은 파이썬 세션이 열려있는 상태로 유지되는 반면, 스크립트가 끝나면 프로그램은 닫힙니다. 스크립트가 닫히면 스크립트는 스크립트로 작성한 모든 것을 가져옵니다.

이 이론을 테스트해볼만한 것 : 콘솔에 "exit"를 입력하면 같은 방식으로 인터페이스가 종료되는 것을 볼 수 있습니까? 그렇다면 스크립트를 열어 둘 수있는 코드 (예 : raw_input과 같은 일시 중지)를 생각해보십시오.

행운을 빈다.

+0

확인, 난 그냥 해봤와 팝 업이 나타납니다 적절한 대기 시간 : metacity를 : 응용 프로그램 – Luca

관련 문제