QtWebKit QApplication 调用两次
我从 Flask 调用一个抓取类,第二次实例化一个新的 Webkit() 类 (QApplication) 时,它退出我的 Flask 应用程序。
如何多次重新运行 Qt GUI 应用程序并将其包含在内,以便它不会关闭“外部”应用程序?
进一步说明,Qt 是事件驱动,调用 QApplication.quit() 不仅会关闭事件循环,还会关闭 Python。不调用 quit() 但永远不会继续执行其余代码。
class Webkit():
...
def __run(self, url, method, dict=None):
self.qapp = QApplication(sys.argv) # FAIL here the 2nd time round
req = QNetworkRequest()
req.setUrl(QUrl(url))
self.qweb = QWebView()
self.qweb.setPage(self.Page())
self.qweb.loadFinished.connect(self.finished_loading)
self.qweb.load(req)
self.qapp.exec_()
def finished_loading(self):
self.qapp.quit()
I am calling a scraping class from Flask and the second time I instantiate a new Webkit() class (QApplication), it exits my Flask app.
How can I re-run a Qt GUI app multiple times and have it contained so it does not shut down the "outer" app?
Further clarification, Qt is event drive and calling QApplication.quit() closes not only the event loop but Python as well. Not calling quit() though never continues executing the rest of the code.
class Webkit():
...
def __run(self, url, method, dict=None):
self.qapp = QApplication(sys.argv) # FAIL here the 2nd time round
req = QNetworkRequest()
req.setUrl(QUrl(url))
self.qweb = QWebView()
self.qweb.setPage(self.Page())
self.qweb.loadFinished.connect(self.finished_loading)
self.qweb.load(req)
self.qapp.exec_()
def finished_loading(self):
self.qapp.quit()
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
到目前为止,对我来说唯一的(hacky!)解决方案是将其添加到 WebKit() 类中:
然后使用以下内容解析 Flask 应用程序的结果:
The only (hacky!) solution so far is for me is to add this to the WebKit() class:
and then parse the result from the Flask app with this: