[英]Tkinter.grid spacing options?
我是Tkinter的新手,我嘗試使用網格布局管理器創建應用程序。 但是,我似乎找不到按照我想要的方式使用它的方法。 我需要做的是模擬一個充滿'單元格'的網格,以便我可以放置單元格(3,8)中的標簽或單元格(5,1)中的按鈕。 這是我嘗試過的一個例子:
import tkinter as tk
root = tk.Tk()
label = tk.Label(root, text = 'Label')
label.grid(column = 3, row = 8)
button = tk.Button(root, text = 'Button')
button.grid(column = 5, row = 1)
Tkinter保持每個小部件的相對位置(即button
位於label
上方和右側),但它忽略了它們之間的任何空間。 我已經搜索了一下這個問題,發現了weight
,但這似乎並不是我想要的; 我想要一些獨立於label
和button
布局的東西。 謝謝您的幫助!
您可以通過在窗口小部件的父grid_rowconfigure
上運行grid_columnconfigure
和grid_rowconfigure
方法來指定網格中列/行的間距(包括那些不包含窗口小部件的行)(在這種情況下,父級將為root
)。
例如,要為第4列設置最小寬度,請將最后一行添加到代碼中:
import Tkinter as tk
root = tk.Tk()
label = tk.Label(root, text = 'Label')
label.grid(column = 3, row = 8)
button = tk.Button(root, text = 'Button')
button.grid(column = 5, row = 1)
root.grid_columnconfigure(4, minsize=100) # Here
如果要為所有列和行設置最小大小,可以使用以下方法迭代它們:
col_count, row_count = root.grid_size()
for col in xrange(col_count):
root.grid_columnconfigure(col, minsize=20)
for row in xrange(row_count):
root.grid_rowconfigure(row, minsize=20)
編輯有趣的是,effbot聲明:
minsize =定義行的最小大小。 請注意,如果某行完全為空,則即使設置了此選項,也不會顯示該行。
(italics mine)但是就我所嘗試的情況而言,它似乎也適用於空的行和列。
默認情況下,行的高度為零,列的寬度為零。 因此,沒有任何內容的行和列將是不可見的,不會占用任何空間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.