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)我输入的内容似乎并不重要,标签仍保持左上方对齐。我错过了什么?
答案 0 :(得分:1)
网格几何管理器是相对的。您将小部件布置在虚拟网格上,通过row
和col
告知对齐和排序。共享同一行的小部件将垂直对齐,行号大于另一行的小部件将在下面。因此,只有在虚拟网格上插入其他小部件时,才会注意到差异。
此外,当您编写header = Label(...).grid(...)
时,您将header
存储在网格结果中(始终为无)。优先使用
header = Label(...)
header.grid(...)
答案 1 :(得分:1)
默认情况下,行的高度为零,列的宽度为零。当您仅在第5行第2列放置内容时,第0-4行实际上是不可见的,第0列和第1列也是如此。仅当您将小部件放在单元格中,或者使用rowconfigure
和/或{时{1}}行或列的大小为非零。