gpt4 book ai didi

Python 网格列跨度

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

我想使用网格列跨度用文本小部件填充孔列。这可能吗?

import tkinter
root = tkinter.Tk()
text = tkinter.Text(root)
text.insert('end','Text')
text.grid(row=0,column=0)#columnspan=?
root.mainloop()

最佳答案

当使用grid时,你需要告诉tkinter它应该如何分配额外的空间。网格将按照行和列的“权重”比例分配行和列之间的任何额外空间。例如,权重为 3 的列将获得比权重为 1 的列多 3 倍的额外空间。每行和列的默认权重为零,这意味着不会为其提供任何额外空间。

根据经验,每当您使用网格时,您都应该为至少一行和至少一列赋予非零权重,这样任何额外的空间都不会被闲置。

在您的情况下,小部件放置在根窗口中,因此您需要配置根窗口中行和列的权重。由于您只使用一行和一列,您可以这样做:

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

这只是故事的一部分。这样,tkinter 将为包含文本小部件的行和列分配额外的空间,但因为您没有告诉它,否则小部件将 float 在该行和列的中间。

要解决这个问题,您需要将小部件的边缘“粘”到为其提供的空间的边缘。您可以使用 sticky 属性来做到这一点。根据您的具体情况,您可以这样做:

text.grid(row=0,column=0, sticky="nsew")

粘性的值为字母“n”(北)、“s”(南)、“e”(东)和“w”(西)或任意组合。

请注意,如果您只想在窗口或框架中放置一个小部件,则只需一行代码即可获得相同的效果:

text.pack(fill="both", expand=True)

关于Python 网格列跨度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41047791/

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