下面的代码循环三次以创建三个标签小部件
import tkinter as tk
root = tk.Tk()
root.geometry("400x200")
frm = tk.Frame(master=root, bg="yellow")
frm.columnconfigure(index=(0, 1, 2), weight=1)
for i in range(3):
tk.Label(master=frm, text=i, bg="red", padx=40, pady=10).grid(row=0, column=i)
frm.pack(fill="both", expand=True)
root.mainloop()
给出以下输出(如预期):
但是,下面的代码只循环两次来创建两个标签小部件
import tkinter as tk
root = tk.Tk()
root.geometry("400x200")
frm = tk.Frame(master=root, bg="yellow")
frm.columnconfigure(index=(0, 1, 2), weight=1)
for i in range(2):
tk.Label(master=frm, text=i, bg="red", padx=40, pady=10).grid(row=0, column=i)
frm.pack(fill="both", expand=True)
root.mainloop()
给出此输出:
如您所见,这两个小部件的间距不正确。我想得到这种输出:
我如何做到这一点?为什么在输出#2中间距不均匀
请记住,我希望在不创建任何其他标签小部件的情况下执行此操作,因为我正在使用tkinter制作的应用程序中使用类似的方法来显示搜索结果。我问这个问题是因为当我试图只显示两个搜索结果或只显示一个搜索结果时,我在该应用程序中面临相同的问题
提前感谢您的回答!请跟我说实话,因为我只是tkinter的初学者
PS:我知道这有点偏离了问题,但如果你能给我指一些资料/教程,我可以更好地了解tkinter的工作原理,请多做
注意:我使用的是Python v3.8.5
原因是,尽管只使用了两列,但您有三列,权重为1
如果您的目标是三个大小相等的列,那么应该使用
uniform
选项weight
只适用于未使用的空间,它不能保证大小相等的列要获得三个大小相等的列,请将所有三列的
uniform
设置为相同的值。值是什么并不重要,只要所有列的值都相同结果是:
相关问题 更多 >
编程相关推荐