LoginSignup
0
0

More than 5 years have passed since last update.

PyQt5 > sys.exit(app.exec_()) > sys.exit()なしでapp.exec_()でも良い?

Last updated at Posted at 2018-01-22
動作環境
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()をメイン関数の最後に付ける、付けないの流儀については未消化。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0