Using a Frame class in a Tk class in Python tkinter Using a Frame class in a Tk class in Python tkinter tkinter tkinter

Using a Frame class in a Tk class in Python tkinter


You can't see frame color because you put widget which fills all frame.

If you add margins (padx, pady) then you can see frame color.

self.text.grid(row=0, column=0, padx=20, pady=20)

You can't see rowspan because you have empty cell is second row. Empty cell has no width and height. Add Label in second row and will see how rowspan works.

from tkinter import *class Frame1(Frame):    def __init__(self, parent):        Frame.__init__(self, parent, bg="red")        self.parent = parent        self.widgets()    def widgets(self):        self.text = Text(self)        self.text.insert(INSERT, "Hello World\t")        self.text.insert(END, "This is the first frame")        self.text.grid(row=0, column=0, padx=20, pady=20) # marginsclass MainW(Tk):    def __init__(self, parent):        Tk.__init__(self, parent)        self.parent = parent        self.mainWidgets()    def mainWidgets(self):        self.label1 = Label(self, text="Main window label", bg="green")        self.label1.grid(row=0, column=0)        self.label2 = Label(self, text="Main window label", bg="yellow")        self.label2.grid(row=1, column=0)        self.window = Frame1(self)        self.window.grid(row=0, column=10, rowspan=2)if __name__=="__main__":    app = MainW(None)    app.mainloop()

enter image description here