2

私はこのチュートリアルに従っています:

http://zetcode.com/tutorials/pyqt4/firstprograms/

最初の例では、アプリケーションがコマンドの後にのみ表示される理由がわかりません。

sys.exit(app.exec_())

また、コードを少し変更してテストしました

import sys
from PyQt4 import QtGui


if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    w = QtGui.QWidget()
    w.resize(250,150)
    w.move(300,300)
    w.setWindowTitle("Title")
    w.show()
    sys.exit(app.exec_())

ターミナルでこれを実行し、最後の行をコメントアウトすると、最後の行を実行した後にのみウィンドウが表示されます。

最後の行が何をするのかよくわかりません。

編集:

の参照がない理由についても混乱しておりapp、子または.wwapp

Spyder と IPython インタープリターで実行しています。

4

2 に答える 2

4

と同等です

status = app.exec_()   # run app, show window, wait for input
sys.exit(status)       # terminate program with a status code returned from app
于 2013-03-28T17:58:56.087 に答える
3

最後の行は 2 つの関数です。最初に実行さapp.exec_()れ (アプリケーションのメイン ウィンドウが表示されます)、関数が終了すると、戻り値が にパラメーターとして渡されますsys.exit。これにより、プログラムが終了し、戻り値がオペレーティング システムに送信されます (これは、 *echo $?プログラム終了後のnix システム)。

すぐに終了しない理由は、Python がsys.exitパラメーターの値を認識するまで実行できず、終了するまでそれを認識できないためapp.exec_()です。

于 2013-03-28T17:59:00.377 に答える