如何使用python或Shell代码退出Qapplication(PyQt)

时间:2012-04-07 15:24:32

标签: python pyqt

大家好,我几乎是所有技术的新手,我将在下面谈你, 我正在使用QApplication启动sys.exit(qapp.exec_())(因为我在我的python类中使用了QWebView,所以一切都很好),除了应用程序不会自行退出之后执行,当我通过REST Django webservice调用此Qapplication时,这会导致问题(服务器不会退出加载),所以我想知道是否有任何解决方案,谢谢, 我想在启动应用程序后使用python执行SIGTSTP(ctrl + z),这是一个实用的解决方案吗?

以下是代码的一部分

def main():
    import sys
    qApp = QtGui.QApplication(sys.argv)

    myappWebView = myappWebView()
    myappWebView.load('http://website.com')
    myappWebView.show()
    sys.exit(qApp.exec_())

if __name__ == "__main__":
    main()

每当我执行此操作时,都会启动一个窗口,并且linux控制台不会提示我输入新命令,直到我手动关闭窗口时它才会停止。

2 个答案:

答案 0 :(得分:1)

如果没有看到代码就很难回答,但我认为你可以在工作完成后致电QCoreApplication.exit()

答案 1 :(得分:0)

您可以在页面加载完毕后退出应用程序:

myappWebView.loadFinished.connect(qApp.quit)

或者,如果页面有一些需要时间执行的javascript,您可以使用计时器来延迟应用程序关闭:

timer = QTimer()
timer.setInterval(2000) # 2 seconds
myappWebView.loadFinished.connect(timer.start)
timer.timeout.connect(qApp.quit)

(或者你可以选择更复杂,也许更准确的方法:How to know when a web page is loaded when using QtWebKit?)。