填充Tkinter时框架松动高度 [英] Frame loosing height when filled tkinter

查看:96
本文介绍了填充Tkinter时框架松动高度的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,我正在学习使用tkinter制作gui,但是遇到了某些问题,却找不到答案,我有3帧的标题,标题的阴影和主要内容框架,并且效果很好

代码:

root = Tk()
root.geometry("1080x600")
root.minsize(width=1080, height=600)
root.maxsize(width=1080, height=600)
root.title("learning ui")

headerFrame = Frame(root, height=50, bg="#17181b")
headerShadow = Frame(root, height=3, bg="#08090a")
contentFrame = Frame(root, bg="#17181b")

headerFrame.pack(side=TOP, fill=X)
headerShadow.pack(fill=X)
contentFrame.pack(fill=BOTH, expand=True)

root.mainloop()

屏幕截图:

但是,当我将某些内容打包到标头中时,它的高度就会降低.

代码:

root = Tk()
root.geometry("1080x600")
root.minsize(width=1080, height=600)
root.maxsize(width=1080, height=600)
root.title("learning ui")

headerFrame = Frame(root, height=50, bg="#17181b")
headerShadow = Frame(root, height=3, bg="#08090a")
contentFrame = Frame(root, bg="#17181b")

headerFrame.pack(side=TOP, fill=X)
headerShadow.pack(fill=X)
contentFrame.pack(fill=BOTH, expand=True)

main.e = Entry(headerFrame)
main.e.pack(side=RIGHT)
main.e.focus_set()

searchBtn = Button(headerFrame, text="Search", command=lambda: callback(retrieve_input()))
searchBtn.pack(side=RIGHT)

def callback(q):
    print q

root.mainloop()

屏幕截图:

解决方案

所有小部件都旨在缩小以适合其孩子".虽然这乍看起来似乎违反直觉,但这是进行小部件布局的最佳方法.不要试图将框架或窗口强制设置为特定大小,只需将窗口小部件放置在所需的大小中,这样最终将得到正确的大小.

如果您想关闭此功能,可以,但是我强烈建议您不要使用它.如果您想了解更多信息,请搜索"overrideredirect".

Hello everyone i am learning to make a gui with tkinter but i run into something and can't find the answer to it i have 3 frames a header a shadow for the header and a main content frame and that works fine

code :

root = Tk()
root.geometry("1080x600")
root.minsize(width=1080, height=600)
root.maxsize(width=1080, height=600)
root.title("learning ui")

headerFrame = Frame(root, height=50, bg="#17181b")
headerShadow = Frame(root, height=3, bg="#08090a")
contentFrame = Frame(root, bg="#17181b")

headerFrame.pack(side=TOP, fill=X)
headerShadow.pack(fill=X)
contentFrame.pack(fill=BOTH, expand=True)

root.mainloop()

Screen shot :

But when i pack something to the header it looses its height.

code:

root = Tk()
root.geometry("1080x600")
root.minsize(width=1080, height=600)
root.maxsize(width=1080, height=600)
root.title("learning ui")

headerFrame = Frame(root, height=50, bg="#17181b")
headerShadow = Frame(root, height=3, bg="#08090a")
contentFrame = Frame(root, bg="#17181b")

headerFrame.pack(side=TOP, fill=X)
headerShadow.pack(fill=X)
contentFrame.pack(fill=BOTH, expand=True)

main.e = Entry(headerFrame)
main.e.pack(side=RIGHT)
main.e.focus_set()

searchBtn = Button(headerFrame, text="Search", command=lambda: callback(retrieve_input()))
searchBtn.pack(side=RIGHT)

def callback(q):
    print q

root.mainloop()

Screen shot:

解决方案

All widgets are designed to "shrink to fit" their children. While this may seem counter-intuitive at first, it's the best way to do widget layout. Don't try to force a frame or window to be a specific size, just put the widgets in that you want and it will end up being the right size.

If you want to turn this feature off you can, but I strongly recommend against it. If you want to know more, search for "overrideredirect".

这篇关于填充Tkinter时框架松动高度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆