import Tkinter as tk from PTE import * from numpy import ones Edict = dict() Ebuttons = list() i=0 points = [] spline = 0 tag1 = "theline" ############################################################################## # Element callback def elem_callback(edict , ebutton, frm): #plot_dist(edict, frm) PTable(edict , ebutton) ############################################################################## # Element addition def ewin_build(window, xmax, xstep): def create(): global i, Edict, Ebuttons Edict[i] = dict(name = "New", symbol = "Hf", mass = 178.00, Z = 72, dist = ones(int(xmax/xstep)), control = 0, LineShape = 200.) Ebuttons.insert(i, tk.Button(Eframe,text=i,width=1,height=1, command=lambda i=i : elem_callback(Edict[i] , Ebuttons[i], Dframe))) Ebuttons[i].pack(side='left') i=i+1 but = tk.Button(window, command=create, text='Add element', bd=2, height=2,width=7) but.pack() but.place(anchor='n', y=5, x=44) ############################################################################## # Element Frames Label1 = tk.LabelFrame(window, text = 'Elements', relief='raised', bd=2) Label1.pack() Label2 = tk.LabelFrame(window, text = 'Distribution', bd=1) Label2.pack() Label2.place(anchor='w', y=210) Eframe = tk.Canvas(Label1) Eframe.pack(fill='both',expand=0) Dframe = tk.Frame(Label2) Dframe.pack() ############################################################################## # Canvas callback def point(event): Distcanvas.create_oval(event.x, event.y, event.x+1, event.y+1, fill="black") points.append(event.x) points.append(event.y) return points def canxy(event): print event.x, event.y def graph(event): global theline Distcanvas.create_line(points, tags="theline") def toggle(event): global spline if spline == 0: Distcanvas.itemconfigure(tag1, smooth=1) spline = 1 elif spline == 1: Distcanvas.itemconfigure(tag1, smooth=0) spline = 0 print event.x, event.y return spline ############################################################################## # Drawing Canvas Distcanvas = tk.Canvas(Dframe, bg="white", width=600, height= 300) #Distcanvas.configure(cursor="crosshair") Distcanvas.grid_columnconfigure(999, weight = 1) Distcanvas.grid_rowconfigure(999, weight = 1) Distcanvas.pack() Distcanvas.bind("", point) Distcanvas.bind("", graph) Distcanvas.bind("", toggle) ############################################################################## # Init create() ##############################################################################