'tkinter tried to structure Code, but now its broken :/

I am currently learning Python and Tkinter. Therefore I've written a small script:

#importing Stuff
import tkinter as tk
#Userinterface
class Gui(tk):
    #creating a frame for the grid
    class creating_spielfeld(tk):
        def __init__(self, window):
            self.spielfeld = tk.Frame(window)
            self.spielfeld.pack(fill="both", expand=True)

    #creating the Button's
    class Buttons(tk):
        def __init__(self, spielfeld):
            self.button1 = tk.Button(spielfeld, text="1")
            self.button2 = tk.Button(spielfeld, text="2")
            self.button3 = tk.Button(spielfeld, text="3")
            self.button4 = tk.Button(spielfeld, text="4")
            self.button5 = tk.Button(spielfeld, text="5")
            self.button6 = tk.Button(spielfeld, text="6")
            self.button7 = tk.Button(spielfeld, text="7")
            self.button8 = tk.Button(spielfeld, text="8")
            self.button9 = tk.Button(spielfeld, text="9")
        #"placing" Buttons
            self.button1.grid(row = 0, column = 0, sticky="nsew")
            self.button2.grid(row = 0, column = 1, sticky="nsew")
            self.button3.grid(row = 0, column = 2, sticky="nsew")
            self.button4.grid(row = 1, column = 0, sticky="nsew")
            self.button5.grid(row = 1, column = 1, sticky="nsew")
            self.button6.grid(row = 1, column = 2, sticky="nsew")
            self.button7.grid(row = 2, column = 0, sticky="nsew")
            self.button8.grid(row = 2, column = 1, sticky="nsew")
            self.button9.grid(row = 2, column = 2, sticky="nsew")
        #configuring the grid to be resizable
            self.tk.Grid.rowconfigure(spielfeld, index=0, weight=1)
            self.tk.Grid.rowconfigure(spielfeld, index=1, weight=1)
            self.tk.Grid.rowconfigure(spielfeld, index=2, weight=1)
            self.tk.Grid.columnconfigure(spielfeld, index=0, weight=1)
            self.tk.Grid.columnconfigure(spielfeld, index=1, weight=1)
            self.tk.Grid.columnconfigure(spielfeld, index=2, weight=1)

        #Credits Label + Frame
        class credits(tk):
            def __init__(self):
                self.credits_frame = tk.Frame(window)
                self.credits_frame.pack(side="bottom")
                self.credit_label = tk.Label(credits_frame, text="Made with ♥ by Boas", font=("Rockwell"))
                self.credit_label.pack(side="bottom")

#creating window
def run_window():
    window = tk.Tk()
    app = Gui(window)
    window.mainloop()
if __name__ == '__main__':
    run_window()

I read this Post but obviously it's not working :/

This is almost the same, and it's working:

import tkinter as tk
    window = tk.Tk()
    frame1 = tk.Frame(window)
    frame1.pack(fill="both", expand=True)
    
    button1 = tk.Button(frame1, text="1")
    button2 = tk.Button(frame1, text="2")
    button3 = tk.Button(frame1, text="3")
    button4 = tk.Button(frame1, text="4")
    button5 = tk.Button(frame1, text="5")
    button6 = tk.Button(frame1, text="6")
    button7 = tk.Button(frame1, text="7")
    button8 = tk.Button(frame1, text="8")
    button9 = tk.Button(frame1, text="9")
    
    button1.grid(row = 0, column = 0, sticky="nsew")
    button2.grid(row = 0, column = 1, sticky="nsew")
    button3.grid(row = 0, column = 2, sticky="nsew")
    button4.grid(row = 1, column = 0, sticky="nsew")
    button5.grid(row = 1, column = 1, sticky="nsew")
    button6.grid(row = 1, column = 2, sticky="nsew")
    button7.grid(row = 2, column = 0, sticky="nsew")
    button8.grid(row = 2, column = 1, sticky="nsew")
    button9.grid(row = 2, column = 2, sticky="nsew")
    
    tk.Grid.rowconfigure(frame1, index=0, weight=1)
    tk.Grid.rowconfigure(frame1, index=1, weight=1)
    tk.Grid.rowconfigure(frame1, index=2, weight=1)
    tk.Grid.columnconfigure(frame1, index=0, weight=1)
    tk.Grid.columnconfigure(frame1, index=1, weight=1)
    tk.Grid.columnconfigure(frame1, index=2, weight=1)
    
    frame2 = tk.Frame(window, background="red")
    frame2.pack(side="bottom")
    credits = tk.Label(frame2, text="Made with ♥ by Boas", font=("Rockwell"))
    credits.pack(side="bottom")
    window.mainloop()

I don't know whats the Problem. Later I'll assign functions to the Buttons to change variables in a list. For a little game. But that doesn't matter rn. Any ideas why the second one is working but the first on isn't?

Thanks for all Answers



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source