2016-07-20 55 views
0

我想製作一個python腳本,在瀏覽器中打開一個本地html文件,並在5秒鐘後關閉該窗口。在5秒內顯示全屏網頁,然後關閉窗口(python)

我已經試過self.close()方法,如果我添加「time.sleep()」這隻會延遲網頁內容

這裏的顯示是我的代碼(我是一個新手,所以,對不起)

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

而不是使用'time.sleep()','嘗試從PyQt4.QtTest進口QTest'和使用'QTest.qWait的(毫秒)'。這應該保持瀏覽器運行,並且您可以在5秒後關閉它。 –

回答

0

使用單次計時器(間隔以毫秒爲單位):

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

這樣做!謝謝! :) – Stichy

相關問題