我正在尝试在tkinter窗口中构建消息传递系统,在其中使用网格布局。我想在邮件的顶部放置一个标签,并在其下方放置一个条目供人们输入;因此,我希望它们完全冲洗。我发现应该执行此操作的pady和ipady,但即使将它们都设置为0:
Label(mainframe, background='white', text='asdasdasdasdasd', anchor=W, justify=LEFT, bd=1, relief='solid').grid(column=1, row=3, sticky=(W,E), columnspan=3, pady=0, ipady=0,padx=0,ipadx=0)
Entry(mainframe, background='white', bd=1, relief='sunken').grid(column=1, row=4, sticky=(W,E), columnspan=3, pady=0, ipady=0, padx=0,ipadx=0)
代码生成下面的图像,元素之间仍然有空格。不知道如何解决这个问题-我所有的谷歌搜索告诉我,我需要做的只是将pady和ipady设置为0,但是显然这是行不通的。感谢所有帮助。
编辑:
这是完整的代码:
from tkinter import *
root = Tk()
root.title("title")
mainframe = Frame(root)
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
root.columnconfigure(0, weight=1)
root.rowconfigure(0, weight=1)
Label(mainframe, text='Left Label').grid(column=1, row=1, sticky=(W, E), rowspan=2)
Label(mainframe, background='white', text='asdasdasdasdasd', anchor=W, justify=LEFT, bd=1, relief='solid').grid(column=1, row=3, sticky=(W,E), columnspan=3, pady=0, ipady=0,padx=0,ipadx=0)
Entry(mainframe, background='white', bd=1, relief='sunken').grid(column=1, row=4, sticky=(W,E), columnspan=3, pady=0, ipady=0, padx=0,ipadx=0)
Label(mainframe, text="Center Area").grid(column=2, row=1, sticky=W, rowspan=2)
Label(mainframe, text="Right Label").grid(column=3, row=1, sticky=W, rowspan=2)
for child in mainframe.winfo_children(): child.grid_configure(padx=5, pady=5)
root.mainloop()
您上次使用了for child in mainframe.winfo_children(): child.grid_configure(padx=5, pady=5)
。这将在mainframe
中添加每个小部件的填充。
最快,最简单的方法,不更改其他小部件的填充。只需更改代码的顺序:
from tkinter import *
root = Tk()
root.title("title")
mainframe = Frame(root)
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
root.columnconfigure(0, weight=1)
root.rowconfigure(0, weight=1)
Label(mainframe, text='Left Label').grid(column=1, row=1, sticky=(W, E), rowspan=2)
Label(mainframe, text="Center Area").grid(column=2, row=1, sticky=W, rowspan=2)
Label(mainframe, text="Right Label").grid(column=3, row=1, sticky=W, rowspan=2)
for child in mainframe.winfo_children(): child.grid_configure(padx=5, pady=5)
Label(mainframe, background='white', text='asdasdasdasdasd', anchor=W, justify=LEFT, bd=1, relief='solid').grid(column=1, row=3, sticky=(W,E), columnspan=3, pady=0, ipady=0,padx=0,ipadx=0)
Entry(mainframe, background='white', bd=1, relief='sunken').grid(column=1, row=4, sticky=(W,E), columnspan=3, pady=0, ipady=0, padx=0,ipadx=0)
root.mainloop()
现在: