【问题标题】:Frame inside another frame In python Tkinter [duplicate]另一个框架内的框架在python Tkinter中[重复]
【发布时间】:2020-07-02 05:06:08
【问题描述】:

我正在尝试将框架放置在框架内......就像我想将 buttoncontainer 和 buttoncontainer2 放置在 bodycontainer 框架内一样。但是当我这样做时,bodycontainer 消失了,.. 我无法弄清楚我的问题.. 我知道我犯了一些愚蠢的错误.. 请帮我解决这个问题。

from Tkinter import *
root = Tk()
root.title('Tkinter Apps')
root.resizable(width=TRUE, height=TRUE)
root.geometry('{}x{}'.format(800, 500))

headerbanner=Frame(root,width=790,height=50,highlightbackground="gray",highlightthickness=1)
headerbanner.grid(row=0,column=0,padx=5,pady=2)

bodycontainer=Frame(root,width=790,height=380,highlightbackground="gray",highlightthickness=1)
bodycontainer.grid(row=1,column=0,padx=5,pady=0)

buttoncontainer=Frame(bodycontainer,width=50,height=300,highlightbackground="gray",highlightthickness=1)
buttoncontainer.grid(row=0,column=0)
buttoncontainer2=Frame(bodycontainer,width=50,height=300,highlightbackground="gray",highlightthickness=1)
buttoncontainer2.grid(row=0,column=1)

root.mainloop()

code

Screenshot of the output

【问题讨论】:

    标签: python python-2.7 tkinter tkinter-layout


    【解决方案1】:

    grid() 几何管理器将缩小框架以适应包含的小部件。因此,看起来框架已经消失了。您可以使用grid_propagate(False) 停止这种大小传播。请参阅下面的示例。我为每个框架赋予了不同的颜色以显示它们的位置:

    from Tkinter import *
    root = Tk()
    root.title('Tkinter Apps')
    root.resizable(width=TRUE, height=TRUE)
    root.geometry('{}x{}'.format(800, 500))
    
    headerbanner=Frame(root,width=790,height=50,bg='khaki')
    headerbanner.grid(row=0,column=0,padx=5,pady=2)
    
    bodycontainer=Frame(root,width=790,height=380,bg='tan')
    bodycontainer.grid(row=1,column=0,padx=5,pady=0)
    bodycontainer.grid_propagate(False) # Stop grid() from resizing bodycontainer
    
    buttoncontainer=Frame(bodycontainer,width=50,height=300,bg='powder blue')
    buttoncontainer.grid(row=0,column=0)
    buttoncontainer2=Frame(bodycontainer,width=50,height=300,bg='olivedrab1')
    buttoncontainer2.grid(row=0,column=1)
    
    root.mainloop()
    

    【讨论】:

    • 是的......它工作......非常感谢......
    猜你喜欢
    • 1970-01-01
    • 2018-10-31
    • 2021-05-29
    • 2018-07-21
    • 2019-12-15
    • 1970-01-01
    • 2021-01-24
    • 2021-11-13
    相关资源
    最近更新 更多