[Tutor] Tix: binding

John Fouhy john at fouhy.net
Wed Mar 15 23:24:56 CET 2006


On 16/03/06, Adam <adam.jtm30 at gmail.com> wrote:
> On 15/03/06, hk at pop.ms <hk at pop.ms> wrote:
> > I want to bind the cancel buttom of a ExFileSelectBox to a routine in my class,
> Here's what I got from a little experimentation and print
> box.cancel.bind.__doc__.
>
> >>> def bar(action):
> ...     print action
> >>> import Tix
> >>> root = Tix.Tk()
> >>> box = Tix.ExFileSelectBox(root)
> >>> box.pack()
> >>> box.cancel.bind("<ButtonPress-1>", bar)
> '-1212073588bar'
> >>> <Tkinter.Event instance at 0xb779c0ec>
> <Tkinter.Event instance at 0xb779c0ec>
> <Tkinter.Event instance at 0xb779c0ec>

This will bind to leftmouse-down, which is different from clicking a
button.  If you want to simulate a real button click with event
bindings, you will need to set a flag on ButtonPress-1, then in
ButtonRelease-1 check for the flag, check to see if the mouse is
within the button, and then activate your callback.

Something else you could try (which I haven't tested) --- instead of
box.cancel.bind, do box.cancel.config(command= ...).

--
John.


More information about the Tutor mailing list