Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Tkinter帧显示在其父帧外部_Python_Tkinter_Tkinter Layout - Fatal编程技术网

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)