On Sun, 6 Nov 2005, Shi Mu wrote:

> frame = c needs to be put before the click function or the lines can
> not be drawn.

     Not at all. I have everything after the click function and it works.

     This is my version (includes a small addition):

def click(event):
     global lastX, lastY
     if lastX != "":
         c.create_line(lastX,lastY,event.x,event.y,fill="white")
     lastX = event.x
     lastY = event.y

def newline(event):
     global lastX, lastY
     lastX=""
     lastY=""

from Tkinter import *

lastX=""
lastY=""
root = Tk()
c = Canvas(root, bg='#0e2e0e', height=500, width=1000)
frame = c
c.bind('<Button-1>',click)
c.bind('<Button-3>',newline)

c.pack()

root.mainloop()

> On 11/6/05, Chris F.A. Johnson <[EMAIL PROTECTED]> wrote:
>> On Sun, 6 Nov 2005, Shi Mu wrote:
>>
>>> based on the following rewritten code, why the lines still can not be
>>> drawn? (there is no error report and the canvas appears).
>>
>>     It works for me.
>>
>>
>>> from Tkinter import *
>>>
>>> root = Tk()
>>>
>>> c = Canvas(root, bg='#0e2e0e', height=500, width=1000)
>>>
>>> lastX=""
>>> lastY=""
>>> def click(event):
>>>  global lastX, lastY
>>>  if lastX != "":
>>>     c.create_line(lastX,lastY,event.x,event.y,fill="white")
>>>  lastX = event.x
>>>  lastY = event.y
>>>
>>> frame = c
>>> c.bind('<Button-1>',click)
>>>
>>> c.pack()
>>>
>>> root.mainloop()


-- 
     Chris F.A. Johnson                     <http://cfaj.freeshell.org>
     ==================================================================
     Shell Scripting Recipes: A Problem-Solution Approach, 2005, Apress
     <http://www.torfree.net/~chris/books/cfaj/ssr.html>
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to