这是如何添加Entry的示例.
可能你遇到问题,因为你在command = addBox中使用了引号
因为您必须从条目中获取值,您必须在列表中记住它们.
我添加了从条目中打印文本的按钮.
from Tkinter import *
#------------------------------------
def addBox():
print "ADD"
ent = Entry(root)
ent.pack()
all_entries.append( ent )
#------------------------------------
def showEntries():
for number, ent in enumerate(all_entries):
print number, ent.get()
#------------------------------------
all_entries = []
root = Tk()
showButton = Button(root, text="Show all text", command=showEntries)
showButton.pack()
addboxButton = Button(root, text="", fg="Red", command=addBox)
addboxButton.pack()
root.mainloop()
#------------------------------------
编辑:
示例并排框.
我使用新框架使用grid()并排输入条目.
这样我就不会在主窗口/框架中混合grid()和pack().
我使用len(all_entries)来获取下一个空闲列的数量.
from Tkinter import *
#------------------------------------
def addBox():
print "ADD"
# I use len(all_entries) to get nuber of next free column
next_column = len(all_entries)
# add label in first row
lab = Label(frame_for_boxes, text=str(next_column+1))
lab.grid(row=0, column=next_column)
# add entry in second row
ent = Entry(frame_for_boxes)
ent.grid(row=1, column=next_column)
all_entries.append( ent )
#------------------------------------
def showEntries():
for number, ent in enumerate(all_entries):
print number, ent.get()
#------------------------------------
all_entries = []
root = Tk()
showButton = Button(root, text="Show all text", command=showEntries)
showButton.pack()
addboxButton = Button(root, text="", fg="Red", command=addBox)
addboxButton.pack()
frame_for_boxes = Frame(root)
frame_for_boxes.pack()
root.mainloop()
#------------------------------------
编辑:
另一个例子:
from Tkinter import *
#------------------------------------
def addBox():
print "ADD"
frame = Frame(root)
frame.pack()
Label(frame, text="From").grid(row=0, column=0)
ent1 = Entry(frame)
ent1.grid(row=1, column=0)
Label(frame, text="To").grid(row=0, column=1)
ent2 = Entry(frame)
ent2.grid(row=1, column=1)
all_entries.append( (ent1, ent2) )
#------------------------------------
def showEntries():
for number, (ent1, ent2) in enumerate(all_entries):
print number, ent1.get(), ent2.get()
#------------------------------------
all_entries = []
root = Tk()
showButton = Button(root, text="Show all text", command=showEntries)
showButton.pack()
addboxButton = Button(root, text="", fg="Red", command=addBox)
addboxButton.pack()
root.mainloop()
#------------------------------------