I can see 2 potential problems here: -colors and -variable.
-colors
It looks like you've read the documentation to get 0, 50 and 80 (which is good) but not fully understood it (less good). The doco is not very clear about this option so that's not overly surprising.
What you actually have says:
-
When the dereferenced value of the scalar reference supplied to the -variable option
(the progress value) is 0,
start showing the progress bar in green. Keep showing it as green until the progress value reaches 50.
-
When the progress value reaches 50, stop showing the progress bar in green from this point forward
and instead show it in green. Keep showing it as green until the progress value reaches 80.
-
When the progress value reaches 80, stop showing the progress bar in green from this point forward
and instead show it in green. Keep showing it as green until the progress value reaches 100
(the value supplied to the -to option).
So what you really want here is:
-colors => [ 0, 'green' ],
-variable
This may be perfectly fine but it leaps out at me as a source of potential error. Please check the following:
-
You declared something like: my %T_testers = ($tst => { ProgS => 0, ... })
-
%T_testers is visible to both my $Prb = $TBL_frame->ProgressBar(...);
and the routine whose progress you're measuring (the progress routine).
-
You are setting $T_testers{$tst}->{"ProgS"} to zero before the progress routine starts.
-
You are incrementing $T_testers{$tst}->{"ProgS"} as the progress routine proceeds
such that it reaches 100 when the progress routine finishes.
Perl/Tk is one of my favourite toys so I don't mind helping with this.
However, if you require further assistance, please do the following:
-
Ensure you have use strict; and use warnings; in your code.
-
Provide an actual description of what you want your GUI to do with respect to this progress bar.
-
Provide a full description of what, if anything, went wrong.
I'm sorry but "... it didnt work ..." [sic] is completely unacceptable.
-
Show enough of the code so that all of the points indicated above
(declarations, assignments, increments, etc.) can be seen.