Skip to Main Content
Learning Perl/Tk
book

Learning Perl/Tk

by Nancy Walsh
January 1999
Beginner content levelBeginner
373 pages
9h 43m
English
O'Reilly Media, Inc.
Content preview from Learning Perl/Tk

8.17. Embedding Widgets

One of the best things you can do with a text widget is put other widgets (such as button or entry widgets) inside it. One advantage of embedding widgets is you can create a scrolled set of widgets on a line-by-line basis.

Before we go over all the different functions that are available to work with embedded widgets, let's look at a quick example. We often want to do a lot of data entry in a program, which means we need a lot of label and entry widgets. Sometimes there are so many of them that it's hard to fit them all on the screen without making a mess of the window. By using a scrolled text widget and putting the label and entry widgets inside it, we can create a lot more widgets within a smaller space. Here's the code:

use Tk; $mw = MainWindow->new; $mw->title("Data Entry"); $f = $mw->Frame->pack(-side => 'bottom'); $f->Button(-text => "Exit", -command => sub { exit; })->pack(-side => 'left'); $f->Button(-text => "Save", -command => sub { # do something with %info; })->pack(-side => 'bottom'); $t = $mw->Scrolled("Text", -width => 40, -wrap => 'none')->pack(-expand => 1, -fill => 'both'); foreach (qw/Name Address City State Zip Phone Occupation Company Business_Address Business_Phone/) { $w = $t->Label(-text => "$_:", -relief => 'groove', -width => 20); $t->windowCreate('end', -window => $w); $w = $t->Entry(-width => 20, -textvariable => \$info{$_}); $t->windowCreate('end', -window => $w); $t->insert('end', "\n"); } $t->configure(-state => 'disabled'); ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Mastering Perl/Tk

Mastering Perl/Tk

Stephen Lidie, Nancy Walsh

Publisher Resources

ISBN: 1565923146Supplemental ContentCatalog PageErrata