大家好,我几乎是所有技术的新手,我将在下面谈你,
我正在使用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控制台不会提示我输入新命令,直到我手动关闭窗口时它才会停止。
答案 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?)。