- import Tkinter
- class mybutton:
- def __init__(self,root,canvas,label,types):
- self.root=root
- self.canvas=canvas
- self.label=label
- if types==0:
- button=Tkinter.Button(root,text='Drawline',command=self.Drawline)
- elif types==1:
- button=Tkinter.Button(root,text='Drawarc',command=self.Drawarc)
- else :
- button=Tkinter.Button(root,text='Drawrect',command=self.Drawrect)
- button.pack(side='right')
- def Drawline(self):
- self.label.text.set('Draw line')
- self.canvas.setstatus(0)
- def Drawarc(self):
- self.label.text.set('Draw arc')
- self.canvas.setstatus(1)
- def Drawrect(self):
- self.label.text.set('Draw rect')
- self.canvas.setstatus(2)
- class mycanvas:
- def __init__(self,root):
- self.status=0
- self.draw=0
- self.root=root
- self.canvas=Tkinter.Canvas(root,bg='white',width=600,height=480)
- self.canvas.pack()
- self.canvas.bind('<ButtonRelease-1>',self.Draw)
- self.canvas.bind('<Button-2>',self.Exit)
- self.canvas.bind('<Button-3>',self.Del)
- def Draw(self,event):
- if self.draw==0:
- self.x=event.x
- self.y=event.y
- self.draw=1
- else:
- if self.status==0:
- self.canvas.create_line(self.x,self.y,event.x,event.y)
- self.draw=0
- elif self.status==1:
- self.canvas.create_arc(self.x,self.y,event.x,event.y)
- self.draw=0
- else :
- self.canvas.create_rectangle(self.x,self.y,event.x,event.y)
- self.draw=0
- def Del(self,event):
- items=self.canvas.find_all()
- for item in items:
- self.canvas.delete(item)
- def Exit(self):
- self.root.quit()
- def setstatus(self,status):
- self.status=status
- class mylabel:
- def __init__(self,root):
- self.root=root
- self.canvas=canvas
- self.text=Tkinter.StringVar()
- self.text.set('draw line')
- self.label=Tkinter.Label(root,textvariable=self.text,fg='red',width=50)
- self.label.pack(side='left')
- root=Tkinter.Tk()
- canvas=mycanvas(root)
- label=mylabel(root)
- mybutton(root,canvas,label,0)
- mybutton(root,canvas,label,1)
- mybutton(root,canvas,label,2)
- root.mainloop()
- #该片段来自于http://www.codesnippet.cn/detail/1510201513823.html
来源: http://www.codesnippet.cn/detail/1510201513823.html