Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re: Updating one option menu by the value of another

by converter (Priest)
on Apr 29, 2003 at 11:13 UTC ( #253937=note: print w/ replies, xml ) Need Help??


in reply to Updating one option menu by the value of another

You need to assign the widget references returned by the constructors to variables so that your first Optionmenu can invoke the second Optionmenu's configure() method to configure the -options attribute.

Give this code a try and see if it works for you. You'll have to replace the list of directories assigned to @myArr with directory names that exist on your system.

#!/usr/bin/perl use warnings; use strict; use Tk; use Tk::widgets qw( Label Optionmenu ); my $mw = tkinit; my $selectedDir; my @files; my $path = '.'; my @myArr = qw(foo bar); my $myFile; my ($Label1, $OptMenu1, $Label2, $OptMenu2); $Label2 = $mw->Label(-text => "level2 "); # no -options: we'll let $OptMenu1 configure -options $OptMenu2 = $mw->Optionmenu( -textvariable => \$myFile, ); $Label1 = $mw->Label(-text => "level1 "); $OptMenu1 = $mw->Optionmenu( -textvariable => \$selectedDir, # -command is invoked when the widget is # allocated and when a selection is made: -command => sub { # redirect the output of ls(1) to /dev/null unless # you want stderr output on the console @files = `ls $path/$selectedDir 2>/dev/null`; #foreach (@files) { chomp() } chomp @files; # chomp() take a LIST warn 'configure $OptMenu2'; # who needs a debugger? $OptMenu2->configure(-options => \@files); }, -options => \@myArr, ); $Label1->grid($OptMenu1, $Label2, $OptMenu2); MainLoop;

Update:
Minor speeling correction.


Comment on Re: Updating one option menu by the value of another
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://253937]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (8)
As of 2014-09-22 07:18 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (182 votes), past polls