私はGUIをTkinterでMVCパターンとして開発しようとしていますが、これは私にとっては新しい方法です。私はウェブ上で多くの例を見てきましたが、それがどのように機能するかを理解することを好みます。だから、私はそれを得るために単純なアプリをプログラミングしているだけです。ModelアクションをTkinter MVCのViewボタンに渡すには?
開始するには、controller.py、view.py、およびmodel.pyというツリーファイルがあります。最初のものは、ビューとモデルの間のコネクタですが、最後のものは決して互いにリンクされません。モデルにはメソッド/関数だけが含まれています。グラフィックインターフェイスを見ると、私はウィジェットを意味します。
Viewクラス(view.py)にコマンドのないボタンがあり、このボタンが実行するアクションがModelsクラス(model.py)にある場合、コントローラクラス(コントローラ.py)このアクションを取得してボタンに配置しますか?
view.pyファイル:
#!/usr/bin/python
# -*- coding:UTF-8 -*-
from Tkinter import*
class View():
def __init__(self, master):
self.master = master
master.title("MAIN GUI")
master.geometry("400x200")
l = Label(master, text="TITLE SCREEN")
l.pack()
b = Button(master, text='Hello')
b.pack()
model.pyファイル:
#!/usr/bin/python
# -*- coding:UTF-8 -*-
from Tkinter import*
from tkMessageBox import*
class Model():
def __init__(self):
pass
#Greeting() #I don't know if this should be here.
def Greeting(self):
print "Hello world"
def Alert(self):
showinfo ('msg', "Hello world")
controller.py:
#!/usr/bin/python
# -*- coding:UTF-8 -*-
from view import*
from model import*
class Controller():
def __init__(self, master):
View(root)
Model()
View.b.config(command=Model.Greeting)
#View.b.config(command=self.Action)
def Action(self):
Model.Greeting()
if __name__ == "__main__":
root = Tk()
View(root)
root.mainloop()