I am trying to create a GUI using the first answer here. I am running into some issues because I don't fully understand how everything should be connected.
I am using a class to create a grid of boxes. Each box uses bind to call some function when clicked.
- Where do I create the Many_Boxes class? see all the way at the bottom for an example of what I'm trying to do. 
- In the Many_Boxes class that is in the Main class I have a actions that I bind to a function. Where do I put that function? How do I call that function? What if I want to call that function from the Nav class? 
I have:
class Nav(tk.Frame):
    def __init__(self, parent):
        tk.Frame.__init__(self, parent)
        self.parent = parent
class Main(tk.Frame):
    def __init__(self, parent):
        tk.Frame.__init__(self, parent)
        self.parent = parent
        self.hand_grid_dict = self.create_hand_grid()
    class Many_Boxes:
        <<<<<<<<<  bunch of code here  >>>>>>>>>>>>>>
        self.hand_canvas.bind("<Button-1>", lambda event: button_action(canvas_hand))  <<<<<< WHAT DO I NAME THIS??? self.parent.....?
class MainApplication(tk.Frame):
    def __init__(self, parent):
        tk.Frame.__init__(self, parent)
        self.navbar = Nav(self)
        self.main = Main(self)
        self.navbar.pack(side="left", fill="y")
        self.main.pack(side="right", fill="both", expand=True)
if __name__ == "__main__":
    root = tk.Tk()
    MainApplication(root).grid(row=1, column=1)
    root.mainloop()
Where do I put this:
 def create_grid(self):
        for x in y:
            your_box = self.Many_Boxes(.......)
 
    