我已经被困在这一段时间了。我基本上试图创建一个允许我加载多个文件的应用程序。目前,该应用程序有6"浏览"按钮,以及相应的Entry框旁边。我试图让浏览按钮将文件位置字符串发送到它旁边的Entry框。不幸的是,目前它只将文件名字符串附加到底部的Entry框中。如何将其输出到相应行的框中?
希望这个解决方案能帮助我理解当我按下执行时如何获得正确的值!
到目前为止我所得到的是以下内容。
提前致谢
r=3
for i in range(6):
#CREATE A TEXTBOX
self.filelocation = Entry(self.master)
self.filelocation["width"] = 60
self.filelocation.focus_set()
self.filelocation.grid(row=r,column=1)
#CREATE A BUTTON WITH "ASK TO OPEN A FILE"
self.open_file = Button(self.master, text="Browse...", command=lambda i=i: self.browse_file(i))
self.open_file.grid(row=r, column=0) #put it beside the filelocation textbox
#CREATE A TEXT ENTRY FOR HELICOPTER ROUTE NAME
self.heliday = Entry(self.master)
self.heliday["width"] = 20
self.heliday.grid(row=r,column=2)
r = r+1
#now for a button
self.submit = Button(self.master, text="Execute!", command=self.start_processing, fg="red")
self.submit.grid(row=r+1, column=0)
def start_processing(self):
#more code here
print "processing"
def browse_file(self, i):
#put the result in self.filename
self.filename = tkFileDialog.askopenfilename(title="Open a file...")
#this will set the text of the self.filelocation
self.filelocation.insert(0,self.filename)
答案 0 :(得分:0)
您必须保留对所有Entry
框的引用。为此,您可以将条目创建更改为:
self.filelocation = []
for i in range(6):
#CREATE A TEXTBOX
self.filelocation.append(Entry(self.master))
self.filelocation[i]["width"] = 60
self.filelocation[i].focus_set()
self.filelocation[i].grid(row=r,column=1)
这样,您可以保留对列表中所有Entry
框的引用。然后,您可以使用以下命令确保文件名符合正确的Entry
self.filelocation[i].insert(0,self.filename)