Darrius
Darrius

Reputation: 177

Python -> Labels cant be shown to Frame

Labels can't be shown into the leftFrame. I'm quite new to Python GUI. My code kinda goes like this:

from tkinter import *

root = Tk()

mainFrame = Frame(root, width=700, height=500)
mainFrame.pack()

leftFrame = Frame(mainFrame, bg="#c2c3c4")
leftFrame.place(relheight=1, relwidth=0.34, anchor=W)

label1 = Label(leftFrame, text="Label1")
label2 = Label(leftFrame, text="Label2")

label1.grid(columnspan=2, sticky=W, pady=(20, 0))
label2.grid(columnspan=3, sticky=W, pady=(5, 0))

root.mainloop()

Upvotes: 0

Views: 202

Answers (1)

Bryan Oakley
Bryan Oakley

Reputation: 385940

In this particular case, you don't see the labels because they are off the screen. leftFrame has an anchor of W, which means that the vertical center of leftFrame is at 0,0. In other words, half of the frame is above the visible portion of the window.

A quick fix to prove this out is to use an anchor of NW instead of W, which will cause the upper-left corner of the frame to be at the upper-left corner of its parent.

However, I strongly encourage you to not use place at all. It has its uses, but really should rarely be used. You end up having to do a lot of work yourself, and the result is usually not very responsive to changes in fonts, resolutions, or window sizes.

Upvotes: 1

Related Questions