Python tkinter,网格管理器无法正常工作

时间:2015-07-02 11:45:42

标签: python tkinter grid

import tkinter
from tkinter import *
root = Tk()
root.geometry("500x500")
root.title("Insert title")
root.configure(background='#CCCCFF')
label1 = Label(root, text = "Insert title", font = ("Rockwell", 12))
label2 = Label(root, text = "Name", font = ("Rockwell", 25))
label1.configure(background='#CCCCFF')
label2.configure(background = '#CCCCFF')
label1.grid(row = 8, column = 3)
root.mainloop()

每次更改label2的网格管理器设置时,标签始终保持在同一位置。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

如果行或列完全为空,则其大小将为零。因此,即使你在第8行放置了一些内容,也不存在从0到7的行。列也是如此。

答案 1 :(得分:0)

如果你问“为什么我的'插入标题'标签总是出现在左上角,即使它有大的行和列值?”,这是因为完全空的行和列被压缩到零像素,因此第8行似乎是第一行,如果第1行到第7行中没有任何小部件。

一种可能的解决方法是将占位符小部件添加到您不想折叠的每一行和每列。

import tkinter
from tkinter import *
root = Tk()
root.geometry("500x500")
root.title("Insert title")
root.configure(background='#CCCCFF')

for i in range(10):
    Frame(root, width=20, height=20, background='#CCCCFF').grid(row=0, column=i)

for j in range(10):
    Frame(root, width=20, height=20, background='#CCCCFF').grid(column=0, row=j)

label1 = Label(root, text = "Insert title", font = ("Rockwell", 12))
label2 = Label(root, text = "Name", font = ("Rockwell", 25))
label1.configure(background='#CCCCFF')
label2.configure(background = '#CCCCFF')
label1.grid(row = 8, column = 3)
label2.grid(row = 9, column = 3)
root.mainloop()
相关问题