def __init__(self, master, model): if not isinstance(master, tk.Tk): raise Exception("master is not a tk.Tk()") if not isinstance(model, TaskModel): raise Exception("model is not a TaskModel") self.__model = model self.__view = TaskView(master) self.__view.update_title(self.__model.get_title()) self.__model.set_callback_title(self.__view.update_title) self.__view.toggle_button.config(command=self.__model.toggle)
def __init__(self, master, model): if master.__class__.__name__ != "Tk": raise Exception("master is not a tk.Tk()") if not isinstance(model, TaskModel): raise Exception("model is not a TaskModel") self.__model = model self.__view = TaskView(master) ''' Update the TaskView to show the string currently represented by the TaskModel ''' self.__view.update_title(model) ''' When the button is clicked, we want it to also update the view's label ''' self.__model.set_callback_title(self.__view.update_title) self.__view.toggle_button.config(command=self.__model.toggle)
def __init__(self, master, model): if isinstance(master, tk.Tk) == False: raise Exception("master is not a tk.Tk()") if isinstance(model, TaskModel) == False: raise Exception("model is not a TaskModel") self.__model = model self.__view = TaskView(master) self.__view.update_title(self.__model.get_title()) for i in self.__model.load_from_file('task.json'): self.__view.insert(i['task']) self.__model.set_callback_title(self.callback) self.__view.toggle_button.config(command=self.__model.toggle) self.__view.add_button.config(command=self.add_item) self.__view.remove_button.config(command=self.remove_item)
def __init__(self, master, model): # raise exceptions if isinstance(master, tk.Tk) == False: raise Exception("master is not a tk.Tk()") if isinstance(model, TaskModel) == False: raise Exception("model is not a TaskModel") # set private attributes self.__model = model self.__view = TaskView(master) self.__view.update_title( self.__model.get_title()) # set title for view according to model # link all callbacks from model to update view self.__model.set_callback_title(self.__view.update_title) # self.__view.update_title(self.__model.get_title()) # link view button to update model (link model callback to view) self.__view.toggle_button.configure(command=self.__model.toggle)
import Tkinter as tk from task_model import TaskModel from task_view import TaskView root = tk.Tk() root.withdraw() tv = TaskView(root) tv.update_title("Finish this funny project") root.mainloop()