gpt4 book ai didi

python - TKinter - 使用网格布局的框架中的小部件不是 'sticking'

转载 作者:行者123 更新时间:2023-11-28 21:26:12 24 4
gpt4 key购买 nike

我在 TKinter 中构建了一个相当复杂的 GUI,所以很自然地一直在使用 .grid 函数。

我已将我的一些小部件分组到框架中以使其更易于处理,但由于某些原因,当我在框架中使用 .grid 和小部件时,粘性属性似乎不起作用 - 我的小部件没有填充整个框架。

例子:

f3 = tk.Frame(self, borderwidth=1, relief="ridge")
f3.grid(row=0, column=0, sticky="NS")
tk.Label(f3, text="Site List").grid(in_=f3, row=0, column=0)
self.sitelist = tk.Listbox(f3)
self.sitelist.grid(in_=f3, row=1, column=0, sticky="NS")

在上面的代码中,框架 f3 填充了我的根小部件的 0,0 单元格中的空间,但是列表框并没有填充框架中的所有空间,即使我已经问过它是粘性的“NS”。

如果将列表框放在根小部件的 0,0 处,那么它会很好地拉伸(stretch)并填充所有空间。如果它在框架中,它就不会表现良好。

谁能解释一下如何解决这个问题?

我以为使用框架会简化我的布局,但事实并非如此!!!

干杯。克里斯

最佳答案

您需要为一列或多列和行赋予“权重”。通常情况下,只有一行和一列的权重为 1(默认值为零)。当包含的小部件或窗口调整大小时,任何具有权重的行或列都会扩展和收缩。

如果不止一行或不止一列具有权重,则权重描述了它们扩展的比例。例如,如果一列的权重为 2,另一列的权重为 1,则权重为 2 的列将比权重为 1 的列扩展两倍。

您可以使用 grid_rowconfiguregrid_columnconfigure 选项为包含的小部件分配权重:

f3.grid_rowconfigure(0, weight=1)
f3.grid_columnconfigure(0, weight=1)

有关权重的简要说明,请参阅标题为 Handling Resize 的部分关于网格教程tkdocs.com网站。

关于python - TKinter - 使用网格布局的框架中的小部件不是 'sticking',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13402411/

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