如何在python tkinter中设置固定帧大小

如何在python tkinter中设置固定帧大小,python,tkinter,window,size,fixed,Python,Tkinter,Window,Size,Fixed,假设我有一个tkinter窗口,有两个单独的帧,我想用信息填充,我唯一的问题是帧大小自动设置。我的窗口大小是500乘500,我希望顶部框架从0,0到250250。底部从0250到500500。我想你可能在这一点上明白了 以下是我目前的代码: def main_game(username,password,new_u,old_u): Tk_window_center(500,500) root.resizable(width=False, height=False) ##

假设我有一个tkinter窗口,有两个单独的帧,我想用信息填充,我唯一的问题是帧大小自动设置。我的窗口大小是500乘500,我希望顶部框架从0,0到250250。底部从0250到500500。我想你可能在这一点上明白了

以下是我目前的代码:

def main_game(username,password,new_u,old_u):
    Tk_window_center(500,500)
    root.resizable(width=False, height=False)
    ##
    if new_u =="":
        pass
    else:
        new_u.pack_forget()
    if old_u =="":
        pass
    else:
        old_u.pack_forget()
    ##
    output_window_frame=Frame(root, bg="black")
    user_terminal_frame=Frame(root)
    ##
    usr_output=Label(output_window_frame)
    user_inp=Entry(user_terminal_frame)
    user_term=Label(user_terminal_frame)
    ##
    output_window_frame.grid(row=0,column=0,rowspan=3,columnspan=3, sticky="NSEW")

    user_terminal_frame.grid(row=4,column=0,rowspan=3,columnspan=3, sticky="NSEW")
    user_inp.pack(side="top", fill="x")
    user_term.pack(side="bottom", fill="x") 

p、 在美国,“新”和“旧”是在启动时激活的先前帧

,因为您使用的是
网格
,所以需要为每一行赋予相同的非零权重,以便每一行扩展到其父行的一半。您将一个窗口放在第4行中,这是可以的,但是由于窗口中只有两个项目,因此我建议使用第0行和第1行

root.grid_rowconfigure(0, weight=1)
root.grid_rowconfigure(4, weight=1)

output_window_frame.grid(row=0,column=0,rowspan=3,columnspan=3, sticky="NSEW")

user_terminal_frame.grid(row=1,column=0,rowspan=3,columnspan=3, sticky="NSEW")
当然,如果您将其他内容放在第1、2或3行中,那么每个帧的高度都不会达到250像素


还有其他方法可以完成同样的事情。您可以使用
pack
,将pack选项
fill
设置为
“两者”
,并将
展开为
True
。或者,您可以使用place将顶部窗口放置在x/y坐标0,0处,相对宽度为1.0,相对高度为.5,然后将另一个窗口再次放置在250250处,相对宽度为1.0,相对高度为.5

为什么需要精确的尺寸!通常,gui最好收缩或增长以适应其内容。500像素有什么特别之处?@BryanOakley我在固定屏幕内制作游戏,我不能让它动态改变大小。如果你有一个顶部和底部框架,为什么底部框架在第4行而不是第1行?