Menu

#5107 bind<ButtonRelease-1> doesnt have same behavior on windows

closed-invalid
None
5
2012-09-06
2012-09-06
No

I write a xml layout feature for my work, recently. And I want bind a radiobutton or checkbutton click event on a method, but do not affect "command" configure option.
so I use the Events and Bindings, I write it like this widget.bind("<ButtonRelease-1>", lambda event: self.enable_toggle(data))
and
def enable_toggle(self, widget):
print widget_value_map[widget].get() # this will get the widget's variable and get it value.

on linux platform, the <ButtonRelease-1> event will be called after variable change, so I get the correct value in enable_toggle
but on windows platform, the event will be called before variable change, so I get the wrong value.

version:(python version 2.7.3)
Linux:
>>> Tkinter.TkVersion
8.5
>>> Tkinter.TclVersion
8.5
Windows:
>>> Tkinter.TkVersion
8.5
>>> Tkinter.TclVersion
8.5

I wrte a simple code(attachment) to show this bug. I want the code have same result on linux and windows, but it doesnt.

BTW: Is there a way to bind multiple method to an button click event? If a better one please tell me. Thank you. mailto: zy.netsec@gmail.com

Discussion

  • sunblackshine

    sunblackshine - 2012-09-06

    a simple code to show this bug

     
  • Don Porter

    Don Porter - 2012-09-06

    This report is about Tk. It should be in the
    Tracker for the tktoolkit project at SourceForge.

    Took care of it for you this time.
    http://sf.net/tracker/?func=detail&aid=3565268&group_id=12997&atid=112997

     
  • Don Porter

    Don Porter - 2012-09-06
    • assigned_to: nobody --> dgp
    • status: open --> closed-invalid