Документ взят из кэша поисковой машины. Адрес оригинального документа : http://kodomo.cmm.msu.ru/hg/petri_dish/raw-rev/15d7afe555a4
Дата изменения: Unknown
Дата индексирования: Tue Oct 2 18:37:17 2012
Кодировка:

# HG changeset patch
# User Daniil Alexeyevsky
# Date 1292417364 -10800
# Node ID 15d7afe555a44c2518f3ea7a52a20c7dbe1d78e1
# Parent eec3dd65336cd21e178a54367c5a08b463ca2a07# Parent 05518686d7af73313877608fb34b6cc1359fd2c7
Automated merge with ssh://kodomo/petri_dish

diff -r eec3dd65336c -r 15d7afe555a4 scale.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/scale.py Wed Dec 15 15:49:24 2010 +0300
@@ -0,0 +1,129 @@
+from Tkinter import *
+import Bacteria
+import Petri
+
+class IF(object):
+ def __init__(self,delay=10,diam=300,num=1,env=1,reprod_a=False,reprod_s=False,life=1):
+ self.delay=delay
+ self.diam=diam
+ self.num=num
+ self.env=env
+ self.reprod_s=reprod_s
+ self.reprod_a=reprod_a
+ self.life=life
+
+ def __repr__(self):
+ return "<%s,%s,%s,%s,%s,%s,%s>"%(self.delay,self.diam,self.num,\
+ self.env,self.reprod_a,\
+ self.reprod_s,self.life)
+ def mutate():
+ pass
+
+ def sbmt(self):
+ submit.config(text="Stop",command=self.stop)
+ scl1.config(state=DISABLED)
+ scl2.config(state=DISABLED)
+ scl3.config(state=DISABLED)
+ cb1.config(state=DISABLED)
+ cb2.config(state=DISABLED)
+ self.num=scl1.get()
+ self.diam=scl2.get()
+ self.life=scl3.get()
+ c.config(height=self.diam+20,width=self.diam+20,bg="gray75")
+ filler=c.create_rectangle(0,0,self.diam+22,self.diam+22,fill="lightgrey")
+ c.grid(row=0,column=2,rowspan=6,padx=50,pady=10)
+ dish=c.create_oval(10,10,self.diam+10,self.diam+10,fill="white")
+ print self
+
+ def stop(self):
+ submit.config(text="Submit",command=self.sbmt)
+ scl1.config(state=NORMAL)
+ scl2.config(state=NORMAL)
+ scl3.config(state=NORMAL)
+ cb1.config(state=NORMAL)
+ cb2.config(state=NORMAL)
+
+ def new_reprod_a(self):
+ self.reprod_a=not(self.reprod_a)
+ return
+
+ def new_reprod_s(self):
+ self.reprod_s=not(self.reprod_s)
+ return
+
+ def help(self):
+ pass
+
+ def pause(self):
+ pass
+
+ def depict(self):
+ pass
+
+root = Tk()
+root.title("Interface")
+intf=IF()
+c=Canvas()
+
+menubar = Menu(root)
+
+# create a pulldown menu, and add it to the menu bar
+controlsmenu = Menu(menubar, tearoff=0)
+controlsmenu.add_command(label="Start", command=intf.sbmt)
+controlsmenu.add_command(label="Stop", command=intf.stop)
+controlsmenu.add_command(label="Add mutation", command=intf.mutate)
+controlsmenu.add_separator()
+controlsmenu.add_command(label="Exit", command=root.destroy)
+#controlmenu.add_command(label="Pause", command=intf.pause)
+menubar.add_cascade(label="Controls", menu=controlsmenu)
+
+helpmenu = Menu(menubar, tearoff=0)
+helpmenu.add_command(label="About", command=intf.help)
+menubar.add_cascade(label="Help", menu=helpmenu)
+
+# display the menu
+root.config(menu=menubar)
+
+
+
+init_frame=LabelFrame(root,text="Initial parameters")
+init_frame.grid(padx=15,pady=10)
+scl1 = Scale(init_frame,orient=HORIZONTAL,length=100,from_=1,\
+ to=50,sliderlength=7,width=10)
+scl1.grid(row=0, column=0,padx=10,pady=5)
+lbl1 = Label(init_frame,text="number of cells",bg="white")
+lbl1.grid(row=0,column=1,padx=10)
+scl2 = Scale(init_frame,orient=HORIZONTAL,length=100,from_=100,\
+ to=500,sliderlength=7,width=10)
+scl2.grid(row=1, column=0,padx=10,pady=5)
+lbl2 = Label(init_frame,text="diameter of Petri dish",bg="white")
+lbl2.grid(row=1,column=1,padx=10)
+scl3 = Scale(init_frame,orient=HORIZONTAL,length=100,from_=1,\
+ to=30,sliderlength=7,width=10)
+scl3.grid(row=2, column=0,padx=10,pady=5)
+lbl3 = Label(init_frame,text="cells' lifetime",bg="white")
+lbl3.grid(row=2,column=1,padx=10)
+lbl_frame=LabelFrame(init_frame,text="Reproduction")
+lbl_frame.grid(row=4,column=0,columnspan=2,padx=15,pady=10)
+list=["Asexual","Sexual"]
+cb1 = Checkbutton(lbl_frame,text="Asexual",command=intf.new_reprod_a)
+cb1.pack()
+cb2 = Checkbutton(lbl_frame,text="Sexual",command=intf.new_reprod_s)
+cb2.pack()
+
+submit=Button(root,text="Submit",width=25,command=intf.sbmt)
+submit.grid(row=1,column=0,columnspan=2,pady=10)
+
+chng_frame=LabelFrame(root,text="Changeable parameters")
+chng_frame.grid(padx=15,pady=10)
+scl = Scale(chng_frame,orient=HORIZONTAL,length=100,from_=1,\
+ to=100,sliderlength=7,width=10)
+scl.grid(row=0, column=0,padx=10,pady=5)
+lbl = Label(chng_frame,text="environment",bg="white")
+lbl.grid(row=0,column=1,padx=10)
+btn = Button(chng_frame,text="Add mutation",width=25,command=intf.mutate)
+btn.grid(row=1,column=0,columnspan=2,pady=10)
+
+#root.after(intf.delay,intf.depict())
+
+mainloop()