Python GUIアプリのclass初期化方法を説明する。下記GUIアプリを例に説明する。
#!/usr/bin/env python3
import sys
from PyQt6.QtWidgets import QApplication, QWidget, QLabel
class GuiWindow(QWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.label0 = QLabel('ラベル0', self)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = GuiWindow()
window.show()
sys.exit(app.exec())
def __init__(self, parent=None):
parentはUIの親子関係を設定するものである。ここではこのclassが継承しているウィジェットQWidgetが最上位の親になる。parent=Noneと記載しているのは、このアプリが別のウィジェットの子として呼び出される場合にparentを引数として受け入れられるようにするためである。
今回はparentを設定する必要が無いためif文の中からwindow = GuiWindow()で呼び出すときは()内に何も入れていないが、parentを設定する場合はwindow = GuiWindow(parent=○○)とする。
super().__init__(parent)
super()は親のことである。つまりこの関数は親であるQWidgetのinit関数を実行するという意味である。
if __name__ == ‘__main__’:
if __name__ == ‘__main__’: については下記記事を参照。
まとめ
Python GUIアプリのclass初期化方法を説明した。
コメント