Layout

Structure the app with frames, a menu bar, a status bar, and grid/pack layout.

Goal for this part

Replace a single label with a structured shell: menu bar, header, body pane, and status bar. You will use an application class that subclasses tk.Tk.

Concepts: geometry managers

Tkinter lays out widgets with pack, grid, or place. This project prefers grid for multi-pane shells and pack for simple toolbars. Mixing both in the same parent is a common source of confusing bugs—pick one per container.

class StackhavenApp(tk.Tk):
    def __init__(self):
        super().__init__()
        self.title("Stackhaven Library")
        self.geometry("720x420")
        # menu + header + body + status...

How to run it and what you should see

Run 02-Layout. You should see File/Help menus, a header labeled Stackhaven Library, a body placeholder, and a status bar. Choosing Help → About should update the status text.