drawline

Ben Bush pythonnew at gmail.com
Tue Nov 22 12:25:11 EST 2005


I had the following code and when I clicked the left mouse button one
time. I got green line and the second click got a purple line and the
green disappeared.
I was confused by two questions:
First, Clicknum increases when every time I click the button. Is it
possible to reset Clicknum to 0?
Second, how to do something like: I click the left button the first
time, the green line appear then disappear, the purple line
appear(just as the code has done but become a loop; if a second-time
click is implied, the loop stops.
from Tkinter import *

ClickNum = 0

def drawline(event):
   global ClickNum
   if ClickNum == 0:
       canvas.create_line(100, 0, 100, 200, arrow=FIRST,fill="green",tag="a")
   elif ClickNum == 1:
       canvas.delete("a")
       canvas.create_line(100, 50, 60, 300, arrow=FIRST,fill="purple")
   ClickNum += 1

tk = Tk()
canvas = Canvas(tk, bg="white", bd=0, highlightthickness=0)
canvas.pack(fill=BOTH, expand=YES)
canvas.create_line(100, 200, 350, 200, arrow=LAST,fill='red')
canvas.bind("<1>", drawline)
tk.mainloop()



More information about the Python-list mailing list