Flask からスクレイピング クラスを呼び出しています。2 回目に新しい 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()