in reply to TK, seting value of a variable.

You are not showing any code we can run, but does this example clarify it?
#!/usr/bin/perl use Tk; my $mw = MainWindow->new; my $rb = 'first button'; my $rb1 = $mw->Radiobutton(-text => "Button One", -value => 'button1', -variable => \$rb, -command => [ \&showRB, \$rb ])->pack; my $rb2 = $mw->Radiobutton(-text => "Button Two", -value => 'button2', -variable => \$rb, -command => [ \&showRB, \$rb ])->pack; MainLoop; sub showRB { print "Arg list is @_\n"; my $state_ref = shift; my $state = $$state_ref; $mw->messageBox(-title => 'Status', -type => 'OK', -message => "Status is :$state:."); }

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

Replies are listed 'Best First'.
Re^2: TK, seting value of a variable.
by papaismurf (Novice) on Dec 16, 2010 at 21:11 UTC
    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".
      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