如何使用pyqt4一个接一个地显示列表中的网页?

时间:2016-01-06 23:50:26

标签: python-2.7 pyqt4 qwebview

我试图弄清楚如何从一个接一个的列表中显示多个网页。到目前为止,在我的代码中,我正在遍历列表,但我在实际调用app.exec_()之前这样做,所以它只显示最后一项。我怎样才能使这个工作在同一个窗口中迭代列表中的所有项目?

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

app = QApplication([])
view = QWebView()
view.setGeometry(100, 150, 1200, 600)
urls = ["https://www.google.com", "https://www.facebook.com/",    "https//:www.stackoverflow.com"]


for url in urls:
   view.setWindowTitle(url)
   view.load(QUrl(url))
   view.show()
   time.sleep(3)

app.exec_()

1 个答案:

答案 0 :(得分:0)

这是因为您的代码不会让QApplication刷新。

当你调用time.sleep(3)时,代码停在那里,QApplication无法刷新。

您必须将QWebview放在QDialog中并调用方法QDialog.exec _()

而不是view.show()。

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

app = QApplication()
dialog = QDialog()
view = QWebView(dialog)
view.setGeometry(100, 150, 1200, 600)

urls = ["https://www.google.com", "https://www.facebook.com/",    "https:www.stackoverflow.com"]


for url in urls:
   view.setWindowTitle(url)
   view.load(QUrl(url))
   dialog.exec_()

app.exec_()