> I forgot the most important thing: the attachment. OK, Here is my annotated version. not sure if it will solve your problem though...
############################# #!/usr/bin/python # In this program I wanted to write the event <B1-Motion> > on my own, combining <Button-1>, <Motion> and <ButtonRelease-1> from Tkinter import * def handler(event): if buttonpressed == 1 : #if the mousebutton is pressed and moved, circles should appear can.create_oval(event.x-r, event.y-r, event.x+r, event.y+r, fill="orange") lab.config(text='buttonpressed=' + str(buttonpressed) ) [AG] First point, using global variables like this is considered [AG] bad practice, better to pass the canvas and label as a [AG] parameter - or better still make the GUI a class and refer [AG] to the attributes.within the methods [AG] Also you are using buttonpressed as a boolean flag, [AG] so why not use boolean values - True/False? [AG] Then your test just becomes [AG] if buttonpressed: ... def press(event): buttonpressed=1 lab2.config(text=buttonpressed) [AG] use True here instead of 1 and you will also need to [AG] declare it as global, otherwise you are simply creating [AG] a local variable inside the function which then gets [AG] thrown away - that might be why the behaviour isn't [AG] as expected, global buttonpressed is always zero! [AG] pass a string to the ttext attribute - I assume you want to [AG] display the string 'button pressed', rather [AG] than the rather cryptic number 1? def release(event): buttonpressed=0 buttonpressed = False here.. lab2.config(text=buttonpressed) [AG] As above. r=5 #global buttonpressed buttonpressed=0 root = Tk() root.geometry('600x500+200+200') [AG] Using a fixed geometry rather undermines [AG] the operation of pack(). Its usually better to let [AG] the Geometry Manager manage the geometry ;-) [AG] If the user resizes the window it will all go awry anyhow! # both labels are used to check the status of the variable buttonpressed lab = Label(root, text='cucc') lab2 = Label(root, text='cucc2') [AG] Not sure why you have two, and why you [AG] change the values from cucc to a number later. can = Canvas(root, width='500', height='400', bg='white') can.bind("<Motion>",handler) can.bind("<Button-1>",press) can.bind("<ButtonRelease-1>",release) lab.pack() lab2.pack() can.pack() root.mainloop() HTH, Alan Gauld Author of the Learn to Program web site http://www.freenetpages.co.uk/hp/alan.gauld _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor