簡體   English   中英

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

[英]How to Quit Qapplication (PyQt) with python or Shell code

大家好,我幾乎是下面將要與您討論的所有技術的新手,我正在使用sys.exit(qapp.exec_())啟動QApplication (必需,因為我在我的QWebView中使用了 QWebView類),一切都很好,除了應用程序在執行后不會自行退出,當我通過 REST Django 網絡服務調用此 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()

每當我執行此操作時,都會啟動 window,而 linux 控制台不會提示我輸入新命令,並且一直卡住,直到我手動關閉 window。

沒有看到代碼就很難回答,但我認為你可以在工作完成后調用QCoreApplication.exit()

您可以在頁面加載完成后退出應用程序:

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? )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM