Tkinter调整框架内的框架

时间:2017-12-12 19:46:32

标签: python tkinter tkinter-layout

在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()

1 个答案:

答案 0 :(得分:3)

由于默认列和行不会改变大小,但您可以使用它来更改它。

var sendCode = 'document.getElementsByClassName("form-control n-gram")[0].value = "' + TMObj.brand + '";';

var TMUrl = "http://website.com";
chrome.tabs.create({ url: TMUrl }, function(tab){
            chrome.tabs.executeScript(null, {code: sendCode});
      });
});

如果您有两行不同的columnconfigure(col_number, weight=1) rowconfigure(row_number, weight=1) ,则行weight更大的行会更快调整大小。

我在框架中添加了背景颜色,以查看哪一个仍然没有改变尺寸。

weight

调整大小之前:

enter image description here

使用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调整大小后 :

enter image description here

没有rowconfigurecolumnconfigure

enter image description here