[英]Tkinter resizing frames inside frame
在python中,我使用tkinter模塊來創建登錄屏幕。 它完全適用於正確位置的所有小部件,但唯一的問題是當我將屏幕拖出更大時,小部件的大小不會隨着主窗口的大小而增加。
from tkinter import *
root = Tk()
f1 = Frame(root)
f1.grid(row=0, column=0, sticky='news')
enter = Frame(f1)
e1 = Entry(enter,font=('Consolas',15),width=25)
e1.insert(0,'E-mail')
e1.pack(pady=10)
e2 = Entry(enter,font=('',15),show='*',width=25)
e2.insert(0,'E-mail')
e2.pack(pady=20)
enter.grid(row=1,column=0,columnspan=3,padx=20,sticky='nsew')
loginframe = Frame(f1)
loginbutton = Button(loginframe,text='Login!',bg='lightblue',height=2,width=39)
loginbutton.pack()
loginframe.grid(row=2,column=0,columnspan=3,sticky='ew')
account = Frame(f1)
Label(account,text="Don't have an account yet?").pack(side=LEFT)
link = Label(account,text="Sign Up!",cursor='hand2',fg='blue',
font=('Helvetica',8,'underline'))
link.pack(side=BOTTOM)
account.pack()
account.grid(row=3,column=0,columnspan=3)
root.mainloop()
由於默認列和行不會更改大小,但您可以使用它來更改它。
columnconfigure(col_number, weight=1)
rowconfigure(row_number, weight=1)
如果你有兩排不同的weight
那么weight
更大的行會更快調整大小。
我為幀添加了背景顏色,以查看哪一個仍然沒有改變大小。
from tkinter import *
root = Tk()
root.columnconfigure(0, weight=1)
root.rowconfigure(0, weight=1)
f1 = Frame(root, bg='red')
f1.grid(row=0, column=0, sticky='news')
f1.columnconfigure(0 , weight=1)
f1.rowconfigure(1, weight=1)
#f1.rowconfigure(2, weight=1)
enter = Frame(f1, bg='green')
enter.grid(row=1, column=0,columnspan=3,padx=20, sticky='nsew')
loginframe = Frame(f1)
loginframe.grid(row=2,column=0,columnspan=3, sticky='ew')
e1 = Entry(enter,font=('Consolas',15),width=25)
e1.insert(0,'E-mail')
e1.pack(pady=10)
e2 = Entry(enter,font=('',15),show='*',width=25)
e2.insert(0,'E-mail')
e2.pack(pady=20)
loginbutton = Button(loginframe,text='Login!',bg='lightblue',height=2,width=39)
loginbutton.pack()
account = Frame(f1)
account.grid(row=3,column=0,columnspan=3)
Label(account,text="Don't have an account yet?").pack(side=LEFT)
link = Label(account,text="Sign Up!",cursor='hand2',fg='blue',
font=('Helvetica',8,'underline'))
link.pack(side=BOTTOM)
root.mainloop()
在調整大小之前:
使用columnconfigure
和rowconfigure
重新調整大小后:
沒有columnconfigure
和rowconfigure
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.