2016-07-20 27 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

相关问题