嘿,所以我试图掌握tkinter,所以我可以在我的程序中充分使用它,但是我挣扎与几何管理器,网格。
我想让我的程序调整网格的大小,基于窗口的大小,有什么办法做到这一点?这是我到目前为止的代码:
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)
当网格管理的窗口中有额外的空间时,它将额外的空间分配给具有非零"权重"的行和列。要使行和列展开,请给它们一个非零的权重。
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倍。