重新分隔网格以适合tkinter窗口

时间:2015-08-08 23:16:14

标签: python python-3.x tkinter tk

嘿所以我试图掌握tkinter所以我可以在我的程序中完全使用它,但是我正在与几何管理器,网格斗争。

我希望我的程序根据widnow的大小调整网格大小,有没有办法做到这一点?到目前为止,这是我的代码:

import tkinter
import time
import random
import sqlite3
window=tkinter.Tk()
window.title("Phone Book")
window.wm_iconbitmap('favicon (2).ico')
window.geometry("300x400")

entlbl1=tkinter.Label(window, text ="Add A Contact", font=("Helvetica", 23))
entlbl2=tkinter.Label(window, text ="Name:", font=("Helvetica", 16))
entlbl3=tkinter.Label(window, text ="Phone:", font=("Helvetica", 16))
entlbl4=tkinter.Label(window, text ="E-Mail:", font=("Helvetica", 16))
entbox1=tkinter.Entry(window)
entbox2=tkinter.Entry(window)
entbox3=tkinter.Entry(window)
entbtn1=tkinter.Button(window, text = "Add")
entbtn2=tkinter.Button(window, text = "Menu")
blanklbl=tkinter.Label(window)

entlbl1.grid(row=0,columnspan=4)
entlbl2.grid(row=1,sticky="w")
entlbl3.grid(row=2,sticky="w")
entlbl4.grid(row=3,sticky="w")
entbox1.grid(row=1, column=1)
entbox2.grid(row=2, column=1)
entbox3.grid(row=3, column=1)
entbtn1.grid(row=5,columnspan=2,sticky="WE")
entbtn2.grid(row=6,columnspan=2, sticky="WE")
blanklbl.grid(row=4)

1 个答案:

答案 0 :(得分:2)

当网格管理的窗口中有额外的空间时,它会将额外的空间分配给具有非零“权重”的行和列。要使您的行和列扩展,请为它们赋予非零权重。

for row in range(7):
    window.grid_rowconfigure(row, weight=1)
for col in range(3):
    window.grid_columnconfigure(col, weight=1)

当然,将其调整为您实际使用的任意数量的行和列。您可以赋予不同的权重,使某些行或列比其他行增长更多。例如,权重为3的列将比权重为1的列快3倍。