The NoteBook Widget
Displaying a lot of information in a small space is often the biggest challenge given to GUI programmers. The NoteBook widget is designed to help do just this. It allows us to have many pages of text, but lets only one be shown at a time. Each page in the NoteBook has a tab associated with it. The tab can display text or an image. Let’s look at a simple example:
use Tk; $mw = MainWindow->new( ); # Create the notebook and fill the whole window $nb = $mw->NoteBook( )->pack(-expand => 1, -fill => 'both'); # Page 1 on the notebook, with button on that page $p1 = $nb->add('page1', -label => 'Page 1'); $p1->Button(-text => 'Click me!')->pack( ); # Empty page 2 $nb->add('page2', -label => 'Page 2'); MainLoop;
It creates a window with a NoteBook widget, shown in Figure 23-15. The notebook has two pages, named Page 1 and Page 2, respectively. Page 1 has a button on it, so the size of the NoteBook is determined by Page 1 (because it is the largest).
Figure 23-15. Simple NoteBook example
Creating Pages
When you create a page in a NoteBook, you
assign it a name using the add
method. From then
on, when calling NoteBook methods, you refer to that page by that
name. In our example, we used page1
and
page2
as the internal page names. The displayed label can either be the same or something completely different. It is important that you use different internal names for every single ...
Get Mastering Perl/Tk now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.