如何从缩小以适合其内容停止Tkinter的框架?
题
这是多数民众赞成给我的麻烦的代码。
f = Frame(root, width=1000, bg="blue")
f.pack(fill=X, expand=True)
l = Label(f, text="hi", width=10, bg="red", fg="white")
l.pack()
如果我注释掉具有Label线,帧显示具有合适的宽度。然而,添加标签,似乎缩小框架下到标签的大小。有没有一种方法,以防止这种情况发生?
解决方案
默认情况下,传统知识框架的缩小或放大,以适应其内容的,这是你想要什么样的99%的时间。描述此功能的术语是“几何传播”。有一个命令以打开几何传播或关闭时使用pack
(和为grid
类似一个)。
由于使用组中,语法是:
f.pack_propagate(0)
也许root.pack_propagate(0)
,这取决于小窗口你真的想影响。但是,因为你没有给帧的高度,它的默认高度为1个像素,所以你仍然可能看不到内部部件。为了得到你想要的全部效果,你需要给包含框架既是宽度和高度。
话虽这么说,绝大多数的时候,你应该让Tkinter的计算大小。当您打开几何传播了你的GUI将不能很好地对分辨率的变化做出反应,在字体的变化等Tkinter的几何经理(pack
,place
和grid
)是非常强大。学会把握权力的优势。
不隶属于 StackOverflow