in reply to Re: TK, seting value of a variable.
in thread TK, seting value of a variable.

Thx for your help folks, well my problem is not to get a variable depending on which checkbuttom was chosen, this i can do. My problem is, if the checkbuttom are "on" i need to get the entry variable,add a string to that variable and print it, and if checkbuttom are off the variable stay "blank", I was succeeded using "if" conditional and setting "onvalues", but i wanted to know if theres a way to do that without using "if". Theres main code:
#!/usr/local/bin/perl use Tk; use LWP::UserAgent; use HTTP::Response; #######main frame####### my $mw = new MainWindow; # Main Window $mw->geometry("600x450"); $mw->minsize(qw(200 200)); $mw->maxsize(qw(200 200)); $mw->title("SQLMAP Guix"); #####widgets positions### my $frame = $mw -> Frame(-relief=>'raised', -borderwidth=>1, ) ->pack(-side=>'top', -fill=>'x'); my $framemethod = $mw -> Frame(-relief=>'raised', -borderwidth=>1, ) ->pack(-side=>'left',-anchor => 'nw'); my $frameproxy = $framemethod -> Frame(-relief=>'raised', -borderwidth=>1, ) ->pack(-side=>'bottom',-anchor => 'nw'); ################BUT Settings##################### my $botaogo = $frame -> Button(-text => 'GO!', -command =>\&botaogo) - +> pack(-side => 'left', -expand => 1); ########Proxy Settings########## my $labelproxy = $frameproxy -> Label(-text=>"\nProxy:") -> pack(); my $proxyentry = $frameproxy -> Entry(-width => 23,-textvariable=>\$pr +oxyurl) -> pack(); my $chk = $frameproxy -> Checkbutton(-text=>"Use Proxy",-selectcolor = +> green, -variable=>\$radioproxy,-onvalue=> "on")-> pack(); $chk -> deselect(); MainLoop; sub botaogo { if (($radioproxy eq 'on' ) && ($proxyurl =~ "http")){ $radioproxy = "--proxy=$proxyurl"; }else{ $radioproxy = undef; } printf "$radioproxy\n"; }
This works, and it is ok! But how i said, my program has four more functions similar to that,and i imagined if theres other solution instead put alot of "ifs".

Replies are listed 'Best First'.
Re^3: TK, seting value of a variable.
by zentara (Cardinal) on Dec 17, 2010 at 12:07 UTC
    My problem is, if the checkbuttom are "on" i need to get the entry variable,add a string to that variable and print it,

    I think you just want to use the command option of checkbutton, which fires on any state change.

    #!/usr/bin/perl use Tk; #######main frame####### my $mw = new MainWindow; # Main Window $mw->geometry("600x450"); $mw->minsize(qw(200 200)); $mw->maxsize(qw(200 200)); $mw->title("SQLMAP Guix"); #####widgets positions### my $frame = $mw -> Frame(-relief=>'raised', -borderwidth=>1, ) ->pack(-side=>'top', -fill=>'x'); my $framemethod = $mw -> Frame(-relief=>'raised', -borderwidth=>1, ) ->pack(-side=>'left',-anchor => 'nw'); my $frameproxy = $framemethod -> Frame(-relief=>'raised', -borderwidth=>1, ) ->pack(-side=>'bottom',-anchor => 'nw'); ################BUT Settings##################### my $botaogo = $frame -> Button(-text => 'GO!', -command =>\&botaogo) - +> pack(-side => 'left', -expand => 1); ########Proxy Settings########## my $labelproxy = $frameproxy -> Label(-text=>"\nProxy:") -> pack(); my $proxyentry = $frameproxy -> Entry(-width => 23,-textvariable=>\$pr +oxyurl) -> pack(); ################################## my $chk = $frameproxy -> Checkbutton( -text=>"Use Proxy", -selectcolor => green, -variable=>\$radioproxy, -onvalue=> "on", -command => \&cb_call, ################ )-> pack(); ################################### $chk -> deselect(); MainLoop; sub cb_call{ #put whatever logic you need here, to construct your string $proxyurl = time. 'yeehah'; $proxyentry->update; } sub botaogo { if (($radioproxy eq 'on' ) && ($proxyurl =~ "http")){ $radioproxy = "--proxy=$proxyurl"; }else{ $radioproxy = undef; } printf "$radioproxy\n"; }

    I'm not really a human, but I play one on earth.
    Old Perl Programmer Haiku ................... flash japh