这是多数民众赞成给我的麻烦的代码。

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的几何经理(packplacegrid)是非常强大。学会把握权力的优势。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top