Harman Punchi
Harman Punchi

Reputation: 85

Tkinter Frame not appearing

I wrote a short piece of code in tkinter in python to see if I could make a frame appear in my window. Here is the code below:

from tkinter import *


root = Tk()
root.title("Window")
root.state("zoomed")
root.config(bg="white")

winHeight = int(root.winfo_height())
winWidth = int(root.winfo_width())

controlFrame = Frame(root, bg="red")
controlFrame.pack()
    
root.mainloop()

I created one full-sized window with a background colour of white. The frame inside it is supposed to be red. However, when I run this code, I do not see any red. I am sure I packed it and everything.

Upvotes: 0

Views: 1494

Answers (2)

Novus Edge
Novus Edge

Reputation: 131

I'd love to help you out on this one...

There's just a slight detail that you might not notice right now but the frame, in fact, is present in the window, but it's too small to see. By this I mean you haven't specified the height and width of the frame that you have placed in the window. Here's the fixed version:

from tkinter import *


root = Tk()
root.title("Window")
root.state("zoomed")
root.config(bg="white")

winHeight = int(root.winfo_height())
winWidth = int(root.winfo_width())

controlFrame = Frame(root, bg="red", height = 700, width = 700)
controlFrame.pack()
    
root.mainloop()

What this will do is just set the height and width of the frame to 700px, so you will get a square frame of red colour.

I hope this answer was satisfactory.

Upvotes: 3

larticho
larticho

Reputation: 169

The answer is pretty simple, you don't have any other widget in your frame, it's empty for now, so its size is 0 pixel (or 1, I don't remember). That's why you don't see it in your window.

Upvotes: 1

Related Questions