動作環境
Ubuntu 16.04 LTS desktop amd64
PyQt5 v5.5.1
プロジェクト開始: https://qiita.com/7of9/items/4077c92b9a773e054193
MemoryEnhancer + PyQt5 > 入門 > LCD表示
などでPyQt5のサンプルを実行していた。
test_pyqt5_180119.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import *
def main():
app = QApplication(sys.argv)
w = QWidget()
w.resize(250, 150)
w.setWindowTitle('Window01')
WiNum = QLCDNumber()
BoxLay = QVBoxLayout()
BoxLay.addWidget(WiNum)
w.setLayout(BoxLay)
WiNum.display(3.14)
w.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
main()のsys.exit(app.exec_())
については気になっていた。
以下を見つけた。
What is the necessity of sys.exit(app.exec_()) in PyQt4?
answered Aug 4 '17 at 19:47
ekhumoro
による回答がついており、sys.exit()
を外しても問題ないだろう、とのこと。
test_pyqt5_180119.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtWidgets import *
def main():
app = QApplication(sys.argv)
w = QWidget()
w.resize(250, 150)
w.setWindowTitle('Window01')
WiNum = QLCDNumber()
BoxLay = QVBoxLayout()
BoxLay.addWidget(WiNum)
w.setLayout(BoxLay)
WiNum.display(3.14)
w.show()
#sys.exit(app.exec_())
app.exec_()
if __name__ == '__main__':
main()
同じ動作になった。
備考
関数の中で関数を呼ぶ記載は自分はしないようにしている。
書くとするとret = app.exec_()
とsys.exit(ret)
のようにするだろう。
sys.exit()をメイン関数の最後に付ける、付けないの流儀については未消化。