python - Set Tkinter label texts as elements of list -


i building gui takes query user , runs lefunction.afunction(query) return list called result. when user presses enter, want text on each label set element of result. attempt, shown below, prints out last element of result on last label...(bear me, beginner tkinter.)

thank you.

import tkinter import os import lefunction  class simpleapp_tk(tkinter.tk):     def __init__(self,parent):         tkinter.tk.__init__(self,parent)         self.parent = parent         self.initialize()       def initialize(self):         self.grid()          self.entryvariable = tkinter.stringvar()         self.entry = tkinter.entry(self,textvariable=self.entryvariable)         self.entry.grid(column=0,row=0,sticky='ew')         self.entry.bind("<return>", self.onpressenter)         self.entryvariable.set(u"")          j in range (1,10):             self.labelvariable = tkinter.stringvar()             label = tkinter.label(self,textvariable=self.labelvariable,                               anchor="w",fg="black",bg="white")              label.bind("<1>", lambda event, text="text": \                           self.click_link(event, text))              label.grid(column=0,row=j,columnspan=2,sticky='ew')               self.labelvariable.set(j)          self.grid_columnconfigure(0,weight=1)         self.resizable(true,false)         self.update()         self.geometry(self.geometry())                self.entry.focus_set()         self.entry.selection_range(0, tkinter.end)      def onpressenter(self,event):         #result list         result = lefunction.afunction(self.entryvariable.get())          in range (0,len(result)):             print "result",i,":",result[i]             self.labelvariable.set(result[i])         self.entry.focus_set()         self.entry.selection_range(0, tkinter.end)      def click_link(self, event, text):         print "you clicked '%s'" % text         #os.system("open "+file)  if __name__ == "__main__":     app = simpleapp_tk(none)     app.title('my application')     app.mainloop() 

the following code works (provided afunction code works expected):

import tkinter import os import lefunction  class simpleapp_tk(tkinter.tk):     def __init__(self,parent):         tkinter.tk.__init__(self,parent)         self.parent = parent         self.initialize()      def initialize(self):         self.grid()          self.entryvariable = tkinter.stringvar()         self.entry = tkinter.entry(self,textvariable=self.entryvariable)         self.entry.grid(column=0,row=0,sticky='ew')         self.entry.bind("<return>", self.onpressenter)         self.entryvariable.set(u"")          self.labelvars = []         j in range (1,10):             labelvar = tkinter.stringvar()             labelvar.set(j)             self.labelvars.append(labelvar)             label = tkinter.label(self,textvariable=labelvar,                               anchor="w",fg="black",bg="white")              label.bind("<1>", lambda event, text="sup": \                           self.click_link(event, text))              label.grid(column=0,row=j,columnspan=2,sticky='ew')          self.grid_columnconfigure(0,weight=1)         self.resizable(true,false)         self.update()         self.geometry(self.geometry())         self.entry.focus_set()         self.entry.selection_range(0, tkinter.end)      def onpressenter(self,event):         #result list         result = lefunction.afunction(self.entryvariable.get())          in range (0,len(result)):             print "result",i,":",result[i]             self.labelvars[i].set(result[i])         self.entry.focus_set()         self.entry.selection_range(0, tkinter.end)      def click_link(self, event, text):         print "you clicked '%s'" % text         #os.system("open "+file)  if __name__ == "__main__":     app = simpleapp_tk(none)     app.title('my application')     app.mainloop() 

instead of setting self.labelvariable on , over, create self.labelvars list, each element corresponding labelvar. can set text of elements of list with:

self.labelvars[i].set(result[i]) 

Comments

Popular posts from this blog

node.js - Mongoose: Cast to ObjectId failed for value on newly created object after setting the value -

[C++][SFML 2.2] Strange Performance Issues - Moving Mouse Lowers CPU Usage -

ios - Possible to get UIButton sizeThatFits to work? -