loadFinished 完成后退出 PyQt4 应用程序

Posted

技术标签:

【中文标题】loadFinished 完成后退出 PyQt4 应用程序【英文标题】:Quit PyQt4 app when loadFinished complete 【发布时间】:2012-12-06 19:31:34 【问题描述】:

我想在 loadFinished 完成后关闭窗口。 想象一下简单的代码:

class Example(QWebView):
    def __init__(self):
        QWebView.__init__(self)
        self.frame = self.page().mainFrame()
        self.frame.loadFinished.connect(self.some_action)

    def some_action(self):
        # do something here
        # after it's done close app

if __name__ == '__main__':
    app = QApplication(sys.argv)
    url = QUrl("some_website")
    br = Example()
    br.load(url)
    br.show()
    app.exec_()

【问题讨论】:

【参考方案1】:

只需在主窗口中调用close():

def some_action(self):
    # do something here
    # after it's done close app
    self.close()

关闭最后一个主窗口后,应用程序将自动退出。

您也可以直接调用应用程序的quit 函数:

    app.quit()

或者,更一般地说:

    QCoreApplication.instance().quit()

【讨论】:

以上是关于loadFinished 完成后退出 PyQt4 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

为啥在某些网站上多次调用 QWebView.loadFinished,例如YouTube?

如何在使用 QWebEngineView 'loadFinished' 加载页面后立即更改 html 元素?

Windows 上的 PyQt4 应用程序在退出时崩溃

QWebView 不加载外部资源

void QWebView::loadFinished(bool ok) ok 总是假的

导入 PyQt4 模块