はじめに
Pyside2を勉強していて一番最初に引っかかるQApplicationやQWindowについて、何となく理解できたのでまとめてみました。
今回作るもの
完成図
コード
import sys
from PySide2.QtWidgets import *
if __name__ == '__main__':
app = QApplication(sys.argv)
main_window = QWidget()
main_window.resize(600,200)
main_window.show()
sys.exit(app.exec_())
解説
from PySide2.QtWidgets import *
QtWidgetsをインポートしています。QtWidgetsの中には、WindowのベースとなるQWidgetや、ボタンQPushbuttonを作成するようなクラスが含まれています。
from PySide2.QtWidgets import QApplication,QWidget
*(ワイルドカード)を使わずに上記のように、クラスを指定してimpotすることもできます。
import sys
sys.argv()を利用する為、sysモジュールもインポートします。sys.argv()については後で説明します。
if __name__ == '__main__':
if __name__ == '__main__はネットに説明がたくさんあるので割愛。
app = QApplication(sys.argv)
QApplicationを変数appに格納します。
QApplicationとはGUIを乗せるための基礎のようなものです。
main_window = QWidget()
QWidgetを、変数main_windowに格納しています。
QWidgetはボタンやラベルを配置するwindowになります。
QApplicationとQWindowの関係はこんなイメージです。

main_window.resize(600,200)
Windowサイズを指定します。数値を変更するとサイズが変わります。
色や形を変更したりもできるようです。
main_window.show
作成したmain_window=QWindow()を表示します。
sys.exit(app.exec_())
app.exec_()=QApplication.exec_()は、Windowを表示させ続けるループを作成しています。
ループしないと、表示されたWindowはプログラム終了と同時に消滅します。
sys.exit_()はプログラムを終了させるコマンドです。app.exec_()の終了を待っています。
app.exec_()の終了時に、0を受け取ってプログラムそのものを終了させます。
sys.exit_()を記述しなかった場合は、app.exec_()を終了させた後に続きのプログラムが実行されます。
追記
Pyside勉強するなら、PysideよりもPyQtで検索したほうが情報量が多い。
PyQtとPysideの違いについてはこちらのページが参考になる。
https://qiita.com/nullpo24/items/c70e02c26ef5cade9480
