
The FXTabBook widget uses “tab items” to control the display of its “pages” one at a time. FXTabBook expects that its odd-numbered children are FXTabItems and its even-numbered children are some type of layout manager. The layout manager contains whatever widgets are to be displayed in that page. Clicking a tab item will show the layout manager (and all its children) associated with that tab while hiding all the other layout managers. Typically, a horizontal or vertical frame is used for the layout manager, and its frame options are set to FRAME_RAISED | FRAME_THICK to provide a standard border.
You can nest tab books to provide tabs within tabs, as shown in the following example:
tabBook1 = FXTabBook(self, None, 0, LAYOUT_FILL_X)
FXTabItem(tabBook1, 'Tab Item 1')
tab1Frame = FXHorizontalFrame(tabBook1,
FRAME_RAISED|FRAME_SUNKEN)
FXLabel(tab1Frame, '
This is the region controlled by Tab Item 1.')
FXTabItem(tabBook1, 'Tab Item 2')
tab2Frame = FXHorizontalFrame(tabBook1, FRAME_RAISED|FRAME_SUNKEN)
tabBook2 = FXTabBook(tab2Frame, None, 0,
TABBOOK_LEFTTABS|LAYOUT_FILL_X)
FXTabItem(tabBook2, 'Subtab Item 1', None, TAB_LEFT)
subTab1Frame = FXHorizontalFrame(tabBook2,
FRAME_RAISED|FRAME_SUNKEN)
AFXNote(subTab1Frame,
'This is a note\nin sub-tab item 1\nthat extends\n' \
'over several\nlines.')
FXTabItem(tabBook2, 'Subtab Item 2', None, TAB_LEFT)
subTab2Frame = FXHorizontalFrame(tabBook2,
FRAME_RAISED|FRAME_SUNKEN) Figure 4–7 shows an example of nested tab books.