Python / PyQt重新打开QWebView显示空白页面

时间:2015-01-30 22:33:13

标签: python pyqt pyqt4 qwebview qwebkit

我在重新运行QAplication后QSpView没有显示任何问题。这个小片段揭示了这个问题:

import sys
from PyQt4 import QtGui, QtWebKit, QtCore

app = QtGui.QApplication(sys.argv)
while True:
    browser = QtWebKit.QWebView()
    browser.setUrl(QtCore.QUrl('https://www.google.ca/#q=pyqt'))
    browser.show()
    app.exec_()

运行后,会显示pyqt的Google搜索页面,但是一旦我关闭小部件,下一个弹出窗口就会显示空白而不是相同的搜索页面。我想知道我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

我不知道为什么页面会留空,但我确定您可以轻松实现相同的功能而无需多次调用QApplication.exec_()

实现相同目的的一个例子:

from PySide import QtGui, QtCore, QtWebKit

class MyBrowser(QtWebKit.QWebView):

    closing = QtCore.Signal()

    def __init__(self):
        super().__init__()

    def closeEvent(self, event):
        self.closing.emit()

class MyApp(QtCore.QObject):

    def __init__(self):
        super().__init__()

    def setup(self):
        self.browser = MyBrowser()
        self.browser.closing.connect(self.setup)
        self.browser.setUrl(QtCore.QUrl('https://www.google.ca/#q=pyqt'))
        self.browser.show()


app = QtGui.QApplication([])
a = MyApp()
a.setup()
app.exec_()