Optionmenu(3) User Contributed Perl Documentation Optionmenu(3)

# [NAME](#NAME)

Tk::Optionmenu - Let the user select one of some predefined options values

# [SYNOPSIS](#SYNOPSIS)

```
    use Tk::Optionmenu;
    $opt = $w->Optionmenu(
                        -options => REFERENCE_to_OPTIONLIST,
                        -command => CALLBACK,
                        -variable => SCALAR_REF,
                        );
    $opt->addOptions( OPTIONLIST );
    # OPTION LIST is
    #   a)  $val1, $val2, $val3,...
    #   b)  [ $lab1=>$val1], [$lab2=>val2], ... ]
    #   c)  combination of a) and b), e.g.,
    #       val1, [$lab2=>val2], val3, val4, [...], ...
```

# [DESCRIPTION](#DESCRIPTION)

The **Optionmenu** widget allows the user chose between a given set of options.

If the user should be able to change the available option have a look at Tk::BrowseEntry.

# [OPTIONS](#OPTIONS)

[-options](#options)

(Re)sets the list of options presented.

[-command](#command)

Defines the callback that is invokes when a new option is selected.

[-variable](#variable)

Reference to a scalar that contains the current value of the selected option.

[-textvariable](#textvariable)

Reference to a scalar that contains the text label of the current value of the selected option.

# [METHODS](#METHODS)

[addOptions](#addOptions)

Adds OPTION\_LIST to the already available options.

# [EXAMPLE](#EXAMPLE)

```
 use Tk;
 my $mw = MainWindow->new();
 my ($var, $tvar);
 my $opt = $mw->Optionmenu(
        -options => [[jan=>1], [feb=>2], [mar=>3], [apr=>4]],
        -command => sub { print "got: ", shift, "\n" },
        -variable => \$var,
        -textvariable => \$tvar
       )->pack;
 $opt->addOptions([may=>5],[jun=>6],[jul=>7],[aug=>8]);
 my $f = $mw->Frame(-relief=>'groove', -borderwidth => 2)->pack;
 $f->Label(-textvariable=>\$tvar)->pack(-side => 'left');
 $f->Label(-text => " -> ")->pack(-side => 'left');
 $f->Label(-textvariable=>\$var)->pack(-side => 'left');
 $mw->Button(-text=>'Exit', -command=>sub{$mw->destroy})->pack;
 MainLoop;
```

# [SEE ALSO](#SEE_ALSO)

Tk::Menubutton, Tk::BrowseEntry

2026-10-26 perl v5.44.0

---

Document: Tk::Optionmenu(3pm) from perl-tk 804.036-r13 (Chainguard OS)
Source: https://github.com/eserte/perl-tk
