python: MVCモデルでGUI設計例【tkinter】

プログラミング
スポンサーリンク




こんにちは、おみです。

今回は、tkinterを使用して、GUIアプリケーションを画面のみ生成します。

リファレンス→https://docs.python.org/ja/3/library/tkinter.html

スポンサーリンク

ソースコード

・Mainメソッド

import tkinter as tk

from tkinter_test.Model import Model
from tkinter_test.View import View
from tkinter_test.Controller import Controller


class Application(tk.Frame):
    def __init__(self, root):
        # スーパークラスのコンストラクタを呼び出し
        super().__init__(root)

        # モデルをインスタンス化
        self.model = Model()

        # ビューをインスタンス化
        self.view = View(root, self.model)

        # コントローラーをインスタンス化
        self.controller = Controller(root, self.model, self.view)

        # 画面の設定
        root.geometry(str(self.model.width) + "x" + str(self.model.height))
        root.title(self.model.title)


def main():
    root = tk.Tk()
    window = Application(root)
    window.mainloop()


if __name__ == "__main__":
    main()

・Model

import configparser as c


class Model(object):
    def __init__(self):
        # ---------------------------------
        # 初期設定
        # ---------------------------------
        # configファイルを読み込み
        self.config = c.ConfigParser()
        self.config.read("config.ini")

        # 画面サイズを取得
        self.title = self.config["DISPLAY_INFO"]["title"]
        self.width = self.config["DISPLAY_INFO"]["width"]
        self.height = self.config["DISPLAY_INFO"]["height"]

青字configparserのリファレンス↓

configparser --- 設定ファイルのパーサー — Python 3.9.4 ドキュメント

緑字 config.iniの内容↓

[DISPLAY_INFO]
title = "MVCモデル作成例"
width = 400
height = 300

・View

class View(object):
    def __init__(self, root, model):
        self.root = root
        self.model = model

・Controller

class Controller(object):
def __init__(self, root, model, view):
self.root = root
self.model = model
self.view = view

実行結果

下記のような画面が出力されます。

 

コメント

タイトルとURLをコピーしました