我想创建一个python脚本,在浏览器中打开一个本地html文件,关闭该窗口5秒后。
我尝试过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 :(得分:0)
使用单次定时器(间隔以毫秒为单位):
class Window(QWidget):
def __init__(self, url, dur):
...
view.setHtml(html)
QTimer.singleShot(dur * 1000, self.close)