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
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
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 ...