tkinter .grid总是左上角对齐

时间:2013-06-24 08:57:47

标签: python tkinter

Ubuntu上的Python 3.3。

我似乎无法让tkinter的.grid函数正常工作。我有以下代码;

import sys
from tkinter import *

mwin = Tk()
mwin.title("Window")
mwin.geometry("450x450+500+100")

header = Label(text="The Label").grid(row=5,column=2)

mwin.mainloop()

对于 .grid(row = x,column = y)我输入的内容似乎并不重要,标签仍保持左上方对齐。我错过了什么?

2 个答案:

答案 0 :(得分:1)

网格几何管理器是相对的。您将小部件布置在虚拟网格上,通过rowcol告知对齐和排序。共享同一行的小部件将垂直对齐,行号大于另一行的小部件将在下面。因此,只有在虚拟网格上插入其他小部件时,才会注意到差异。

此外,当您编写header = Label(...).grid(...)时,您将header存储在网格结果中(始终为无)。优先使用

header = Label(...)
header.grid(...)

答案 1 :(得分:1)

默认情况下,行的高度为零,列的宽度为零。当您仅在第5行第2列放置内容时,第0-4行实际上是不可见的,第0列和第1列也是如此。仅当您将小部件放在单元格中,或者使用rowconfigure和/或{时{1}}行或列的大小为非零。