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()