在tkinter中的Frame上制作可视网格

时间:2017-03-29 18:51:05

标签: python tkinter

我想在tkinter 8.6的根目录中创建3个帧(右,中,左) 然后在每个帧中制作一个可视网格(使用" - ")。当我尝试在第一个面板上创建网格时,我收到以下错误消息。

  

TypeError:grid_configure()至少需要1个参数(给定0)。

这是我的代码:

from tkinter import *

root = Tk()
root.geometry("1366x768")      


frame_right = Frame(root,width = 1366/4,height = 768bg = "powder blue")
frame_right.pack(side = LEFT)

frame_center = Frame(root,width = 1366/2,height = 768,bg = "red")
frame_center.pack(side = LEFT)

frame_left = Frame(root,width = 1366/4,height = 768,bg = "steel blue")
frame_center.pack(side = LEFT)

for i in range(0,10):
    for j in range(0,20):

        Label(frame_left,text = "-",width = 10,height = 1)
        Label.grid(row = i,column = j)

root.mainloop()

2 个答案:

答案 0 :(得分:1)

使用Label(parent, {some arguments}),您可以在第一行创建实例,在第二行创建没有父实例的实例。

必须改变:

Label(frame_left,text = "-",width = 10,height = 1)
Label.grid(row = i,column = j)

为:

label = Label(frame_left,text = "-",width = 10,height = 1)
label.grid(row = i,column = j)

或:

Label(frame_left,text = "-",width = 10,height = 1).grid(row = i,column = j)

答案 1 :(得分:0)

我在代码中使用类似的东西在主行和列上添加可见间距。

我认为您不需要定义高度,因为文本会为您做到这一点。

你可能想尝试使用这样的东西。

for col_num in range(20):
    spacer=Label(root, text=str(col_num)) 
        #replace root with your frame
        #you can replace str(col_num) with your "-"
    spacer.grid(row = 0, column = col_num)
    root.columnconfigure(col_num, minsize=10)
for row_num in range(10):
    spacer=Label(root, text=str(row_num)) #replace root with your frame
    spacer.grid(row = row_num, column = 0)
    root.rowconfigure(row_num, minsize=10)