2016-07-20 5 views
0

5 초 후에 브라우저에서 로컬 HTML 파일을 열 수있는 python 스크립트를 만들고 싶습니다. 나는 self.close() 메소드를 시도하고 내가 "() time.sleep"을 추가하는 경우에만 웹 콘텐츠 여기전체 화면 웹 페이지를 5 초 동안 표시 한 다음 창을 닫습니다 (파이썬)

의 표시를 지연시킬

내 코드입니다 (그래서 초보자이야 , 미안)

import sys 
from PyQt4.QtCore import * 
from PyQt4.QtGui import * 
from PyQt4.QtWebKit import * 
import urllib 
import time 


class Window(QWidget): 
    def __init__(self, url, dur): 
     super(Window, self).__init__() 
     view = QWebView(self) 
     layout = QVBoxLayout(self) 
     layout.setContentsMargins(0, 0, 0, 0) 
     layout.addWidget(view) 

     html = urllib.urlopen(url).read()  
     view.setHtml(html) 
     time.sleep(dur) 
     self.close() 


def main(url, dur): 
    app = QApplication(sys.argv) 
    window = Window(url, dur) 
    window.showFullScreen() 
    app.exec_() 

main('test.html', 5) 

의견이 있으십니까? 보시다시피 나는 생성자에서 url과 duration (sleep)을 모두 전달하려고합니다.

+0

대신 QTest.qWait을 PyQt4.QtTest 수입 QTest'에서'시도') ('time.sleep를 사용하여 '사용 (msec)'입니다. 이렇게하면 브라우저가 계속 실행되고 5 초 후에 닫을 수 있습니다. –

답변

0

를 사용하여 하나의 샷 타이머 (간격은 밀리 초 단위입니다) :

class Window(QWidget): 
    def __init__(self, url, dur): 
     ... 
     view.setHtml(html) 
     QTimer.singleShot(dur * 1000, self.close) 
+0

그랬어! 감사! :) – Stichy