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( )
我刚开始学习Python和tkinter。我想让两个Entry框与整个窗口一样宽。但即使我使窗口变大,Entry字段也被限制在“网格”的第一列,并且不会扩展。如何使输入字段更宽?
答案 0 :(得分:1)
来自http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/grid-config.html
w.columnconfigure(N,option = value,...)
weight要使列或行可伸缩,请使用此选项并提供一个值,该值在分配额外空间时给出此列或行的相对权重。例如,如果窗口小部件w包含网格布局,这些行将分配额外空间的四分之三到第一列,四分之一到第二列:
w.columnconfigure(0, weight=3)
w.columnconfigure(1, weight=1)
如果未使用此选项,则列或行不会拉伸。
所以在你的情况下
master.columnconfigure(1, weight=1)
以及更新e1(和e2)的粘性属性,如@BryanOakley所指出的那样:
e1.grid(row=0, column=1, sticky=W+E)
应该这样做。
答案 1 :(得分:0)
我有一个类似的例子,你可以试试这个:
from Tkinter import *
root = Tk()
row1 = Frame(root)
row1.grid(row=0, column=0, sticky=N+S+E+W)
row2 = Frame(root)
row2.grid(row=1, column=0, sticky=N+S+E+W)
Label1 = Label(row1,text = "First")
Label2 = Label(row2,text = "Second")
entry1 = Entry(row1)
entry2= Entry(row2)
row1.pack(fill=X)
Label1.pack(side = LEFT)
entry1.pack(side = LEFT,fill=X,expand = True)
row2.pack(fill=X)
Label2.pack(side = LEFT)
entry2.pack(side = LEFT,fill=X,expand = True)
root.mainloop()