我试图弄清楚如何从一个接一个的列表中显示多个网页。到目前为止,在我的代码中,我正在遍历列表,但我在实际调用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_()
答案 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_()