gpt4 book ai didi

python - 在 Tkinter 中为框架添加标签会忽略框架的属性

转载 作者:太空宇宙 更新时间:2023-11-03 11:08:53 24 4
gpt4 key购买 nike

我已经创建了一个固定大小的框架,现在我想在上面添加一些标签和其他小部件。但是我发现,一旦我在此框架上添加新的小部件,它的属性就不会被接受,即大小和默认背景颜色集不会被接受。

from Tkinter import *
tk = Tk()
page1 = Frame(tk, bg="blue", width=100, height=200)
l1 = Label(page1, text='This is label 1')
page1.pack()
l1.pack()
tk.mainloop()

所以在上面的示例中,如果我注释掉第 4 行和第 6 行,那么我可以看到一个具有蓝色背景颜色的固定大小的框架。我的要求是我想在此框架上使用这种颜色添加一些其他小部件。

最佳答案

您关于宽度和高度未被尊重的说法是正确的,但背景颜色不是。背景颜色不受影响,但您看不到背景,因为背景恰好适合标签周围。如果您在打包时向标签添加填充,您将看到背景。

至于宽度和高度……这是Tkinter的一大特色。默认情况下,容器小部件会展开或折叠到刚好足以容纳其内容的大小。因此,当您调用 pack 时,它会导致框架缩小。此功能称为几何传播

对于绝大多数 应用程序,这是您想要的行为。在极少数情况下,当您想要明确设置容器的大小时,您可以关闭此功能。要关闭它,请在容器上调用 pack_propagategrid_propagate(取决于您是在该容器上使用 grid 还是 pack),给它一个值 错误

以您的代码为例,您可以:

page1.pack_propagate(False)

我的建议是不要这样做,而是学习如何使用几何传播。它将使您的 GUI 在用户调整窗口大小时表现得更好,并且您不会花时间尝试计算窗口的正确大小。让 Tkinter 为你做那件事。

关于python - 在 Tkinter 中为框架添加标签会忽略框架的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11413459/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com