OK, here is a slightly cleaned up version of this horrible code. I did not change too much at one time for fear of confusing you. The main problem is you did not explicitly grid the entry like i told you earlier, and why you are using eval is beyond any measure of sanity...
from Tkinter import * import tkSimpleDialog class IntVar_GUI: def __init__(self, master): self.master = master master.title('Control Variable Fun') self.frame = Frame(master, height=200, width=200, takefocus=1, highlightthickness=2, highlightcolor='blue') self.frame.pack() #self.frame.bind("<KeyPress>", self.HandleKey) self.anumber = 123 # Want name and value to be configurable menu = Menu(master) master.config(menu=menu) self.mainMenu = Menu(menu) menu.add_cascade(label="My Menu",menu=self.mainMenu) self.mainMenu.add_command(label="Enter Data", command=self.Set_Enter_Data) self.mainMenu.add_command (label="Exit",underline=1,command=self.Quit) self.Focus() def Set_Enter_Data(self): sdict = {"ok":False, "anumber":self.anumber} dialog = Enter_Data_Dialog(self.master, sdict) self.Focus() print "Howdy, set data. Number is:", dialog.anumberVar.get() print "dict:", dialog.sdict if not dialog.sdict["ok"]: return try: self.anumber = int(dialog.anumberVar.get())#why the heck where you using eval here? print "OK" except: print "Not OK" pass print "self.anumber:", self.anumber def Quit(self): self.running = False #self.master.quit() self.master.destroy() def Focus( self ): self.frame.focus_set() class Enter_Data_Dialog(tkSimpleDialog.Dialog): def __init__(self, parent, sdict): self.sdict = sdict tkSimpleDialog.Dialog.__init__(self, parent) def body(self,master): self.title("Set a Number Entry Dialog") Label( master, text="Number ").grid(row=0, sticky=W) self.anumberVar = StringVar() entry = Entry(master, width=10, textvariable=self.anumberVar) entry.grid(row=0, column=1) #i told you to explicitly grid a widget you want to call later entry.insert(0,11) self.anumberVar.set( "%d" % self.sdict["anumber"] ) return entry def apply(self): self.sdict["ok"] = True def Process(): root = Tk() app = IntVar_GUI(root) root.mainloop() if __name__ == "__main__": Process() The next message i send will be a rewrite of this code in a proper Pythonic fashion, this frankly is a plate of spaghetti! -- http://mail.python.org/mailman/listinfo/python-list