首页 > 解决方案 > 为什么这个 tkinter 网格将最后添加的复选框居中?

问题描述

这就是我获得输出的方式我无法弄清楚列跨度是如何工作的。我知道这听起来有点愚蠢,但我只是在看到输出时感到困惑,复选框如何自动放在密码输入框(entry2 框)下方。

使用网格()

from tkinter import *
root = Tk()
label1 = Label(root,text='Name:')
label2 = Label(root,text='Password:')
entry1 = Entry(root)
entry2 = Entry(root)
label1.grid(row=0,column=0)
entry1.grid(row=0,column=1)
label2.grid(row=1,column=0)
entry2.grid(row=1,column=1)

c = Checkbutton(root,text='Keep me logged in')
c.grid(columnspan=2)
root.mainloop()

非常感谢您的宝贵时间。

标签: pythonuser-interfacetkinterpycharmpython-3.8

解决方案


这是因为“列”和“行”的默认值(见下文)

column:在此列插入小部件。列号以 0 开头。如果省略,则默认为 0。

row:在该行插入小部件。行号从 0 开始。如果省略,则默认为网格中的第一个空行。因此,检查按钮默认为第一列和第一个空行,即第 3 行。

有关更多信息,请参阅:https ://effbot.org/tkinterbook/grid.htm


推荐阅读