Python 在tkinter中使用多帧展开

Python 在tkinter中使用多帧展开,python,tkinter,Python,Tkinter,我试图在我的真实程序中得到底部红色框的等价物,它是标签和复选框,以扩展到顶部绿色框的大小,绿色框也是我真实程序中的复选框。填充和扩展似乎都不起作用。我也不能改变宽度。我做错了什么 try: from tkinter import * except ImportError: from Tkinter import * class Application(Frame): def __init__(self,master=None): root = Tk()

我试图在我的真实程序中得到底部红色框的等价物,它是标签和复选框,以扩展到顶部绿色框的大小,绿色框也是我真实程序中的复选框。填充和扩展似乎都不起作用。我也不能改变宽度。我做错了什么

try:
    from tkinter import *
except ImportError:
    from Tkinter import *

class Application(Frame):
    def __init__(self,master=None):
        root = Tk()
        Frame.__init__(self,master)

        topframe = Frame(self)
        botframe = Frame(self)

        Frame(topframe, background="green", width=300, height = 200).grid(row =0, column = 0)
        Frame(botframe, background="red", width=200, height = 200).grid(row =1, column = 0, sticky = E)

        topframe.pack(side = TOP)
        botframe.pack(side = BOTTOM, fill = BOTH, expand = True)

        self.pack(fill="both", expand=True)
        root.mainloop()
Application()

我修好了,如果你有类似的问题,请看一看

try:
    from tkinter import *
except ImportError:
    from Tkinter import *

class Application(Frame):
    def __init__(self,master=None):
        root = Tk()
        Frame.__init__(self,master)

        topframe = Frame(root)
        botframe = Frame(root)

        topframe.grid(row =0, column = 0, sticky=N+E+W)
        botframe.grid(row =1, column = 0, sticky=S+E+W)

        topframe.columnconfigure(0, weight=1)
        botframe.columnconfigure(0, weight=1)

        Frame(topframe, background="green", width=300, height = 200).grid(row =0, column = 0, sticky=N+E+W)
        Frame(botframe, background="red", width=200, height = 200).grid(row =1, column = 0, sticky = S+E+W)

        root.mainloop()
Application()

使用grid时,一条经验法则是,应该对grid_rowconfigure和grid_columnconfigure进行配置,使至少一行和一列具有非零权重。这将导致该行和该列占用布局中的空闲空间

如果你描述一下你所做的,你的答案会更好。否则,其他试图向您学习的人将不得不逐行比较程序,直到他们发现差异。