Python Tkinter帧显示在其父帧外部
我试图在其父框架内对标签进行网格化,但它却显示在窗口的底部,我认为没有任何地方与我告诉它的位置相关。 这是我的密码:Python Tkinter帧显示在其父帧外部,python,tkinter,tkinter-layout,Python,Tkinter,Tkinter Layout,我试图在其父框架内对标签进行网格化,但它却显示在窗口的底部,我认为没有任何地方与我告诉它的位置相关。 这是我的密码: class Window: def __init__(self, root): #configure the window as root self.root = root #create a canvas self.canvas = Canvas(self.root, bg="white", width=500, height=300).gri
class Window:
def __init__(self, root):
#configure the window as root
self.root = root
#create a canvas
self.canvas = Canvas(self.root, bg="white", width=500, height=300).grid(row=0, column=0, rowspan=2)
#create two frames to the right of the canvas for entering letters and displaying wrong guesses
self.wrong_guess_frame = Frame(self.root, bg="red", width=150, height=150).grid(row=0, column=1)
self.entry_frame = Frame(self.root, bg="green", width=150, height=150).grid(row=1, column=1)
#create a title label for the wrong answers and a frame in which to sit it
self.wrngguess_title_frame = Frame(self.wrong_guess_frame, bg="blue",width = 100).grid()
self.wrngguess_title = Label(self.wrong_guess_frame, text="Wrong Guesses:").grid()
最后两行是我遇到的问题。self.wrngguess\u标题
不出现在error\u guess\u框架
中,而是出现在窗口的底部,我不知道是什么原因造成的
任何帮助都将不胜感激。TIA根据您在问题中指定的内容,您需要做的只是指定
行
和列
与框架相同,如下所示:
self.wrngguess_title = Label(self.wrong_guess_frame, text="Wrong Guesses:").grid(row=0, column=1)
self.wrngguess_title_frame = Frame(self.wrong_guess_frame, bg="blue",width = 100).grid(row=0, column=1)
前面的代码产生以下结果:
但是,如果要将该行下移一点,请使用以下代码段:
self.wrngguess_title_frame = Frame(self.wrong_guess_frame, bg="blue",width = 100).grid(row=0, column=1, pady=(25,10))
产生这个结果的原因是:
希望这能帮到你。这就是我从你的问题中推断出你想要的。
self。猜错了\u frame
不指任何框架;该变量实际上是None
,即创建帧后应用于该帧的.grid()
方法的返回值。而None
,作为任何小部件构造函数的第一个参数,被解释为对根窗口的引用
如果还希望有一个变量引用小部件,则必须将小部件创建和grid/pack作为两个单独的语句来执行:
self.wrong_guess_frame = Frame(self.root, bg="red", width=150, height=150)
self.wrong_guess_frame.grid(row=0, column=1)