0
わかりやすくするために、私はプログラムを2つの小さなクラスに単純化しました:単一のボタンを持つGUIと、 GUIがコントローラと通信できるようにするために、コントローラには独自のインスタンスがありますが、そのコントローラをGUIに戻すにはどうしたらいいですか?PythonのGUIクラスとコントローラクラスの間の双方向通信
class Controller():
def buttonClicked(self):
# btn['bg'] = 'blue' - how do I reference the button?
class GUI():
def __init__(self,master):
self.master = master
self.controller = Controller()
self.btn = tk.Button(master,command=self.controller.buttonClicked())
self.btn.pack()
root = tk.Tk()
GUI(root)
root.mainloop()
なぜ、 'buttonClicked'メソッドをGUIクラスではなく別のクラスにしたいのですか? –
ところで、古いスタイルではなく新しいスタイルのクラスを使用するのは良い考えです。 Python 2では、 'class controller(object):'のようにクラスに 'object'を継承させることでそれを行うことができます。 Python 3では、すべてのクラスが新しいスタイルです。 –
@ PM2Ring私は学校のプロジェクトにモデルビューコントローラのパターンを使用しようとしています – Charley