sammy
1/1/2008 6:55:00 PM
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.