Just started learning tkinter and im tackling on grid management. I set the a frame to have 1 weight on column 0, therefore I expected label1 to be stretched to the end of the frame, then label2 added on column 1 with the length relative to its text size.
expected output: https://gyazo.com/65cf907e2cdea07d08844bdc8c62c7b2
output: https://gyazo.com/3c9e9c9f86372e01e96283545387c51e
Heres my code:
import tkinter as tk
class App(tk.Tk):
    def __init__(self, *args, **kwargs):
        tk.Tk.__init__(self, *args, *kwargs)
        container = tk.Frame(self)
        container.pack(side="top", fill="both", expand=True)
        container.grid_rowconfigure(0, weight=1)
        container.grid_columnconfigure(0, weight=1)
        frame_list = (MenuFrame,
                     )
        self.geometry("1024x768")
        self.frames = {}
        for F in frame_list:
            page_name = F.__name__
            frame = F(parent=container, controller=self)
            self.frames[page_name] = frame
            frame.grid(row=0, column=0, sticky="nsew")
        self.show_frame("MenuFrame")
    def show_frame(self, page_name):
        frame = self.frames[page_name]
        frame.tkraise()
class MenuFrame(tk.Frame):
    def __init__(self, parent, controller):
        tk.Frame.__init__(self, parent)
        self.controller = controller
        self.create_widgets(self)
    def create_widgets(self, parent):
        frame = tk.Frame(self, bg="white")
        frame.grid_columnconfigure(0, weight=1)
        frame.grid_rowconfigure(0, weight=1)
        label1 = tk.Label(frame, text="Label one", bg="red")
        label2 = tk.Label(frame, text="Label two", bg="blue", fg="white")
        frame.grid(row=0, column=0, sticky="nsew")
        label1.grid(row=0, column=0)
        label2.grid(row=0, column=1)
  
if __name__ == "__main__":
    app = App()
    app.mainloop()