我在重新运行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搜索页面,但是一旦我关闭小部件,下一个弹出窗口就会显示空白而不是相同的搜索页面。我想知道我在这里做错了什么?
答案 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_()