2017-08-04 18 views
0

我有這樣的代碼,這工作得很好:在PyQt4中sys.exit(app.exec_())的必要性是什麼?

import sys 
from PyQt4 import QtGui 

def main_window(): 
    app = QtGui.QApplication(sys.argv) 
    screen = QtGui.QDesktopWidget().screenGeometry() 

    widget = QtGui.QWidget() 
    widget.setWindowTitle("Center!") 
    widget.setGeometry(200, 100, screen.width() - 400, screen.height() - 200) 

    label = QtGui.QLabel(widget) 
    label.setText("Center!") 
    label.move(widget.frameGeometry().width()/2, widget.frameGeometry().height()/2) 

    widget.show() 
    sys.exit(app.exec_()) 

if __name__ == "__main__": 
    main_window() 

現在在我說sys.exit(app.exec_())行了,我也可以說app.exec_()兩者的工作原理相同。

那麼有什麼區別,爲什麼需要寫sys.exit()

在此先感謝。

+0

它只是讓你在Qt事件循環結束後立即關閉程序,這在大多數情況下當你關閉GUI時 – Xatyrian

回答

1

exec()調用啓動事件循環並將阻塞,直到應用程序退出。如果exit code has been set,exec()將在事件循環終止後返回。將此退出代碼傳遞給sys.exit()是一種很好的做法 - 但這並非嚴格必要。如果沒有明確地致電sys.exit(),腳本將在代碼的最後一行執行後自動退出,代碼爲0。通常使用非零退出代碼來通知調用進程發生了錯誤。

相關問題