A tab widget provides a tab bar of tabs and a `page area' below (or above, see TabPosition) the tabs. Each tab is associated with a different widget (called a `page'). Only the current tab's page is shown in the page area; all the other tabs' pages are hidden. The user can show a different page by clicking on its tab or by pressing its Alt+\fIletter\fR accelerator if it has one.
Create a TQWidget for each of the pages in the tab dialog, insert children into it, set up geometry management for it and use addTab() (or insertTab()) to set up a tab and keyboard accelerator for it.
If you don't call addTab() and the TQTabWidget is already visible, then the page you have created will not be visible. Don't confuse the object name you supply to the TQWidget constructor and the tab label you supply to addTab(). addTab() takes a name which indicates an accelerator and is meaningful and descriptive to the user, whereas the widget name is used primarily for debugging.
The signal currentChanged() is emitted when the user selects a page.
.PP
The current page is available as an index position with currentPageIndex() or as a wiget pointer with currentPage(). You can retrieve a pointer to a page with a given index using page(), and can find the index position of a page with indexOf(). Use setCurrentPage() to show a particular page by index, or showPage() to show a page by widget pointer.
.PP
You can change a tab's label and iconset using changeTab() or setTabLabel() and setTabIconSet(). A tab page can be removed with removePage().
.PP
Each tab is either enabled or disabled at any given time (see setTabEnabled()). If a tab is enabled, the tab text is drawn normally and the user can select that tab. If it is disabled, the tab is drawn in a different way and the user cannot select that tab. Note that even if a tab is disabled, the page can still be visible, for example if all of the tabs happen to be disabled.
Although tab widgets can be a very good way to split up a complex dialog, it's also very easy to get into a mess. See TQTabDialog for some design hints. An alternative is to use a TQWidgetStack for which you provide some means of navigating between pages, for example, a TQToolBar or a TQListBox.
Most of the functionality in TQTabWidget is provided by a TQTabBar (at the top, providing the tabs) and a TQWidgetStack (most of the area, organizing the individual pages).
The new page is \fIchild\fR; the tab's label is \fIlabel\fR. Note the difference between the widget name (which you supply to widget constructors and to setTabEnabled(), for example) and the tab label. The name is internal to the program and invariant, whereas the label is shown on-screen and may vary according to language and other factors.
.PP
If the tab's \fIlabel\fR contains an ampersand, the letter following the ampersand is used as an accelerator for the tab, e.g. if the label is "Bro&wse" then Alt+W becomes an accelerator which will move the focus to this tab.
.PP
If you call addTab() after show() the screen will flicker and the user may be confused.
.PP
Adding the same child twice will have undefined behavior.
.PP
See also insertTab().
.PP
Examples:
.)l addressbook/centralwidget.cpp and themes/themes.cpp.
This is a low-level function for adding tabs. It is useful if you are using setTabBar() to set a TQTabBar subclass with an overridden TQTabBar::paint() function for a subclass of TQTab. The \fIchild\fR is the new page and \fItab\fR is the tab to put the \fIchild\fR on.
Returns a pointer to the page currently being displayed by the tab dialog. The tab dialog does its best to make sure that this value is never 0 (but if you try hard enough, it can be).
The new page is \fIchild\fR; the tab's label is \fIlabel\fR. Note the difference between the widget name (which you supply to widget constructors and to setTabEnabled(), for example) and the tab label. The name is internal to the program and invariant, whereas the label is shown on-screen and may vary according to language and other factors.
.PP
If the tab's \fIlabel\fR contains an ampersand, the letter following the ampersand is used as an accelerator for the tab, e.g. if the label is "Bro&wse" then Alt+W becomes an accelerator which will move the focus to this tab.
.PP
If \fIindex\fR is not specified, the tab is simply appended. Otherwise it is inserted at the specified position.
.PP
If you call insertTab() after show(), the screen will flicker and the user may be confused.
This is a lower-level method for inserting tabs, similar to the other insertTab() method. It is useful if you are using setTabBar() to set a TQTabBar subclass with an overridden TQTabBar::paint() function for a subclass of TQTab. The \fIchild\fR is the new page, \fItab\fR is the tab to put the \fIchild\fR on and \fIindex\fR is the position in the tab bar that this page should occupy.
.SH "bool TQTabWidget::isTabEnabled ( TQWidget * w ) const"
Replaces the dialog's TQTabBar heading with the tab bar \fItb\fR. Note that this must be called \fIbefore\fR any tabs have been added, or the behavior is undefined.
Note that even a disabled tab/page may be visible. If the page is visible already, TQTabWidget will not hide it; if all the pages are disabled, TQTabWidget will show one of them.