2016-12-02 24 views
2

所以我想爲我的A Level課程創建一個二十一點遊戲(嗯,我處於早期階段),並且我正在使用Tkinter網格來定位所有的小部件。如何設置一定量的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)也作爲空白區域。

請幫忙,我必須在兩週內完成這個程序。

+0

順便說一句:如果你需要'l','l2'那麼你有兩個步驟做'L =標籤()'和'l.grid()'。現在你將'None'分配給'l',因爲'grid()'總是返回'None'。 – furas

回答

2

由於默認空行/列的高度/寬度爲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() 
相關問題