Pythonのif __name__ == ‘__main__’:節の意味を説明する。何も表示しないGUIを例に説明する。
#!/usr/bin/env python3
import sys
from PyQt6.QtWidgets import QApplication, QWidget
class GuiWindow(QWidget):
pass
if __name__ == '__main__':
app = QApplication(sys.argv)
window = GuiWindow()
window.show()
sys.exit(app.exec())
if __name__ == ‘__main__’:
if __name__ == ‘__main__’:内のコードはそのPythonファイルが他のファイルからimportされた場合は実行されない。その他の場合、例えばコマンドラインから実行された場合やexeファイル化されてexeファイルとしてとして実行された場合は実行される。
app = QApplication(sys.argv)
これはQApplicationのインスタンスを生成するコードである。QApplicationはコマンドラインの情報を受け取ることができsys.argvはコマンドライン引数である。この引数の渡し方はテンプレートとして覚えれば良い。
sys.exit(app.exec())
わかりづらいので分解して考える。
result = app.exec()
sys.exit(result)
1行目:app(QApplicationのインスタンス)のイベントループを発生させGUIを操作することができるようになる。GUIを閉じたり破棄されると返り値が返る。正常終了の場合は整数0を返す。それ以外は0以外を返す。
2行目:Pythonを終了させる関数である。GUIが正常に終了したかどうかを引数として受け取る。
まとめ
if name == ‘main‘:節の意味を説明した。
コメント