tkinter:网格方法奇怪的行为

时间:2010-11-03 14:59:56

标签: python grid tkinter frames

我希望此代码执行此操作:

使用此布局创建4个框架(虚线表示框架跨越该列):

 -X-
 XXX

在每个框架(X)中,应该有两行,如下所示:

cowN,1
cowN,2

似乎grid()方法全局 ,并且从不特定于单个框架...

#!/usr/apps/Python/bin/python
from Tkinter import *

master = Tk()

frame1 = Frame(master).grid(row=0,columnspan=3)
frame2 = Frame(master).grid(row=1,column=0)
frame3 = Frame(master).grid(row=1,column=1)
frame4 = Frame(master).grid(row=1,column=2)
#->Frame1 contents
Label(frame1, text='cow1,1').grid(row=0)
Label(frame1, text='cow1,2').grid(row=1)
#->Frame2 contents
Label(frame2, text='cow2,1').grid(row=0)
Label(frame2, text='cow2,2').grid(row=1)
#->Frame3 contents
Label(frame3, text='cow3,1').grid(row=0)
Label(frame3, text='cow3,2').grid(row=1)
#->Frame4 contents
Label(frame4, text='cow4,1').grid(row=0)
Label(frame4, text='cow4,2').grid(row=1)

master.mainloop()

1 个答案:

答案 0 :(得分:2)

您的代码存在的问题是您没有在Frame个变量上引用frameN个对象:您创建了对象,并调用了他们的grid方法:您存储在变量上返回网格方法,即None

因此,您的标签是以None作为主人创建的。

只需将您的行更改为:

frame1 = Frame(master); 
frame1.grid(row=0, columnspan=3)