Push to Make (Single Pole) Button running a loop

Sambo sambo at voidstar.com
Tue Jan 1 13:55:02 EST 2008


Hendrik van Rooyen wrote:
>  "Jon Todd" <jo...en.co.uk> wrote:
> 
> 
>>I'd like to have a button that when pressed executes a loop (this could be a
>>thread) and then stops execution when it's released (Push to Make - Single
>>Pole in electronics terms).
>>
>>I've tried the regular way of associating the procedure with a callback and
>>tried using <Button-1> and <ButtonRelease-1> bindings but am getting nowhere
>>fast (in the latter case the button release event seems to occur anyhows).
>>
> 
> 
> You are a bit stymied :
> 
> Afaik, Button needs the click on the button, leaving it depressed,
> while ButtonRelease needs a click on the button, and the release can be anywhere
> for drag and drop implementation.  So it is possible to call two routines with
> one
> click and release.
> 
> But there is another hassle - you would have to code the loop as a separate
> thread,
> started by the first, while the second routine sets some variable that is
> checked by
> the loop to kill itself, as the GUI will not be responsive until the first
> command
> returns, because the command "captures" the main loop...
> 
> HTH - Hendrik
> 
> 
Perhaps besides all the multithreading issues you should be looking at different kind
of control/button ei. checkbox or radio button (windows terminology)?

My first experience at GUI with Tk/TCL?? was not a good one due to both
lack of docs and fear it wouldn't work on both LUNUX and vindows.

Wish there was a simple library with basic primitives like create_windows resize,
get_client_area and of course some functions to hand of control to the system.
At least for me, that way I could get much further much faster than trying to
find the learn the behavior of all the currently available controls.
Another point I came across recently is that there is no information on proper 
cleanup after TCL, don't remember exactly why it was a problem it is after all OOP sy. 
So, you may have to read the sourcecode for everything you are using and it ain't easy, 

Good Luck.

Cheers.



More information about the Python-list mailing list