如何设置Tkinter网格的一定数量的行和列?

时间:2016-12-02 10:52:48

标签: tkinter grid graphic

所以我试图为我的A Level课程创建一个二十一点游戏(好吧,我在早期阶段)并且我使用Tkinter网格来定位我的所有小部件

我想要一个包含20列和10行的网格。 但是,在我的程序中,我只使用第1至18列和第1至18行。

我如何告诉Tkinter我仍然希望列0和19以及第0行和第9行为空白,因此它不认为我希望我的网格只有9行和19列?

我们说我将此作为我的基本程序:

from tkinter import *
window=Tk()
window.pack()
l=Label(window, text='Label1').grid(column=8, row=1)
l2=Label(window, text='Label2').grid(column=1, row=8)

所以,在这个程序中,网格会认为它只需要9列9行,但实际上我想要一个列号10(9)作为空格而行号10(9)作为空格同样。

请帮忙,我必须在两周内完成这个计划。

1 个答案:

答案 0 :(得分:3)

默认情况下,空行/列的高度/宽度为0(零),您不会看到它(但它存在)。

您可以为行或列设置最小尺寸(即行/列编号9)

 window.rowconfigure(9, {'minsize': 30})
 window.columnconfigure(9, {'minsize': 30})

 # or

 window.rowconfigure(9, minsize=30)
 window.columnconfigure(9, minsize=30)

或者您可以将Label放在没有文字或空格作为文字的地方。

import tkinter as tk

window = tk.Tk()

l1 = tk.Label(window, text='Label1')
l1.grid(column=8, row=1)

l2 = tk.Label(window, text='Label2')
l2.grid(column=1, row=8)

# add empty label in row 0 and column 0
l0 = tk.Label(window, text='     ')
l0.grid(column=0, row=0)

# set minimal size for row 9 and column 9
window.rowconfigure(9, {'minsize': 30})
window.columnconfigure(9, {'minsize': 30})

window.mainloop()