更改 tkinter 输入框的宽度以匹配窗口的宽度

Sne*_*ler 3 tkinter python-3.x

from tkinter import *

def show_entry_fields():
    e2.insert(10,(e1.get()))

master = Tk()
master.minsize(width=900, height=20)

Label(master, text="Paste").grid(row=0)
Label(master, text="Output").grid(row=1)

e1 = Entry(master)
e2 = Entry(master)

e1.grid(row=0, column=1)
e2.grid(row=1, column=1)


Button(master, text='Quit', command=master.quit).grid(row=3, column=0, sticky=W, pady=4)
Button(master, text='Convert', command=show_entry_fields).grid(row=3, column=1, sticky=W, pady=4)    

mainloop( )
Run Code Online (Sandbox Code Playgroud)

我刚刚开始学习 Python 和 tkinter。我想让两个输入框与整个窗口一样宽。但即使我使窗口变大,输入字段也仅限于“网格”的第一列并且不会扩展。如何使输入字段更宽?

Eri*_*eil 5

来自http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/grid-config.html

w.columnconfigure(N, 选项=值, ...)

权重 要使列或行可拉伸,请使用此选项并提供一个值,该值给出分配额外空间时该列或行的相对权重。例如,如果小部件 w 包含网格布局,这些行会将额外空间的四分之三分配到第一列,将四分之一分配到第二列:

w.columnconfigure(0, weight=3)
w.columnconfigure(1, weight=1)
Run Code Online (Sandbox Code Playgroud)

如果不使用此选项,列或行将不会拉伸。

所以在你的情况下

master.columnconfigure(1, weight=1)
Run Code Online (Sandbox Code Playgroud)

正如 @BryanOakley 所指出的,同时更新 e1(和 e2)的粘性属性:

e1.grid(row=0, column=1, sticky=W+E)
Run Code Online (Sandbox Code Playgroud)

应该可以解决问题。