Вызов QtWebKit QApplication дважды - PullRequest
1 голос
/ 22 июня 2011

Я вызываю класс очистки из 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()

1 Ответ

1 голос
/ 23 июня 2011

Единственное (хакерское!) Решение для меня на данный момент - добавить это в класс WebKit ():

if __name__ == '__main__':
    ....

и затем проанализируйте результат из приложения Flask следующим образом:

return os.popen('python webkit.py').read()
...