({{, (RefLink[TabView, paclet:ref/TabView])[{(Subscript[lbl, 1])->(Subscript[expr, 1]), (Subscript[lbl, 2])->(Subscript[expr, 2]), …}] 
represents an object in which clicking the tab with label (Subscript[lbl, i]) displays (Subscript[expr, i]). }, {, (RefLink[TabView, paclet:ref/TabView])[{(Subscript[lbl, 1])->(Subscript[expr, 1]),(Subscript[lbl, 2])->(Subscript[expr, 2]),…},i]
makes the i(^th) tab be the one currently selected.}, {, (RefLink[TabView, paclet:ref/TabView])[{{(Subscript[v, 1]),(Subscript[lbl, 1])->(Subscript[expr, 1])},{(Subscript[v, 2]),(Subscript[lbl, 2])->(Subscript[expr, 2])},…},v]
associates values (Subscript[v, i]) with successive tabs, and makes the tab with value v be the one currently selected. }, {, (RefLink[TabView, paclet:ref/TabView])[{(Subscript[expr, 1]),(Subscript[expr, 2]),…}] 
takes the tab labels to be successive integers.}})

OpenersNotesSection(Spacer1)Details and Options

(RefLink[TabView, paclet:ref/TabView])[list,(RefLink[Dynamic, paclet:ref/Dynamic])[s]] takes the selected tab to be specified by the dynamically updated current value of s, with the value of s being reset if a different tab is selected.

The following options can be given:

With the default option setting (RefLink[ImageSize, paclet:ref/ImageSize])->(RefLink[All, paclet:ref/All]), (RefLink[TabView, paclet:ref/TabView]) always leaves space for the largest of the (Subscript[expr, i]) to be displayed, so that its overall size does not change. »

With (RefLink[ImageSize, paclet:ref/ImageSize])->(RefLink[Automatic, paclet:ref/Automatic]), (RefLink[TabView, paclet:ref/TabView]) leaves space only for the (Subscript[expr, i]) currently being displayed.

If any of the (Subscript[lbl, i]) are (RefLink[Null, paclet:ref/Null]), the corresponding tabs are left blank. »

(RefLink[Appearance, paclet:ref/Appearance])->"Limited" specifies that only a limited number of tabs should be displayed at a time, with controls to navigate through different "pages" of tabs.

(RefLink[Appearance, paclet:ref/Appearance])->{"Limited",n} specifies that only up to n tabs should be displayed at a time.

(RefLink[TabView, paclet:ref/TabView]) by default displays the (Subscript[lbl, i]) in "TabViewLabel" style, which typically uses the system button font.

The settings for (RefLink[BaseStyle, paclet:ref/BaseStyle]) and (RefLink[LabelStyle, paclet:ref/LabelStyle]) are appended to the default styles typically given by the "TabView" and "TabViewLabel" styles in the current stylesheet.

OpenersPrimaryExamplesSection(Spacer1)Examples  (33)

OpenersExampleSection0(Spacer1)Basic Examples  (2)

Use default labels for tabs:

TabView[{a,b,c,d}]

Insert labels for each element:

TabView[{x->a,y->b,z->c}]

OpenersExampleSection1(Spacer1)Scope  (11)

OpenersExampleSubsection0(Spacer1)TabView Content  (7)

Use graphics as content in (RefLink[TabView, paclet:ref/TabView]):

TabView[Table[Plot[Sin[n x],{x,0,10}],{n,5}]]

(RefLink[TabView, paclet:ref/TabView]) can contain any expression, including (RefLink[Manipulate, paclet:ref/Manipulate]):

TabView[Function[i,i->Manipulate[Expand[(x+i)^j],{j,1,4,1}]]/@Range[5]]

(RefLink[TabView, paclet:ref/TabView]) can be nested:

TabView[{TabView[{a,b,c}],TabView[{x,y}]}]

Use any expression as a label:

TabView[Table[Sin[x^n]->Plot[Sin[x^n],{x,0,5}],{n,5}]]

Use strings as labels:

TabView[{"first tab"->x,"second tab"->y}]

Put the labels into text style:

TabView[{Text["first tab"]->x,Text["second tab"]->y}]

Use (RefLink[Null, paclet:ref/Null]) to indicate a blank tab label:

TabView[{Null->a,x->b}]

By default, a (RefLink[TabView, paclet:ref/TabView]) leaves enough space to display without ever resizing:

d=Table[Graphics[Disk[],ImageSize->s],{s,20,50,10}]

{TabView[d],TabView[d,4]}

With (RefLink[ImageSize, paclet:ref/ImageSize])->(RefLink[Automatic, paclet:ref/Automatic]), (RefLink[TabView, paclet:ref/TabView]) resizes for each pane:

{TabView[d,ImageSize->Automatic],TabView[d,4,ImageSize->Automatic]}

OpenersExampleSubsection1(Spacer1)TabView Control  (4)

Start with tab 2 selected:

TabView[{a,b,c,d},2]

Select the tab with value v:

TabView[{{u,x->a},{v,y->b}},v]

By default, the setting is based on position:

{TabView[{a,b,c},Dynamic[x]],Dynamic[x]}

{TabView[{"a"->a,"b"->b,"c"->c},Dynamic[x]],Dynamic[x]}

Use the {u,lbl->expr} to have u be the setting:

{TabView[{{u,"a"->a},{v,"b"->b},{w,"c"->c}},Dynamic[y]],Dynamic[y]}

Connect a (RefLink[TabView, paclet:ref/TabView]) to a slider:

{TabView[{a,b,c,d},Dynamic[i]],Slider[Dynamic[i],{1,4,1}]}

Use (RefLink[With, paclet:ref/With]) to replace dynamically scoped variables:

DynamicModule[{j},TabView[Table[With[{i=i},Graphics[Dynamic[If[i===j,{Disk[],White,Inset[i]},{Circle[],Inset[i]}]],ImageSize->25,PlotRangePadding->.5]->i!],{i,5}],Dynamic[j]]]

OpenersExampleSection2(Spacer1)Options  (10)

OpenersExampleSubsection2(Spacer1)Alignment  (1)

A list of objects:

d=Table[Graphics[Circle[],ImageSize->s],{s,20,50,10}]

Default alignments:

TabView[d]

Control horizontal alignment only:

TabView[d,Alignment->Right]

Control horizontal and vertical alignments:

TabView[d,Alignment->{Center,Bottom}]

OpenersExampleSubsection3(Spacer1)AutoAction  (1)

By default, tabs must be clicked to change the view:

TabView[{a,b,c}]

By setting (RefLink[AutoAction, paclet:ref/AutoAction])->(RefLink[True, paclet:ref/True]), moving the mouse over tabs changes the view:

TabView[{a,b,c},AutoAction->True]

OpenersExampleSubsection4(Spacer1)BaselinePosition  (1)

Align with text:

Row[Table[TabView[{x,y,z},BaselinePosition->p],{p,{Top,Center,Bottom}}],"xxx"]

OpenersExampleSubsection5(Spacer1)ControlPlacement  (1)

Position the controls:

Table[TabView[{x,y,z},ControlPlacement->p],{p,{Top,Bottom,Left,Right}}]

OpenersExampleSubsection6(Spacer1)Enabled  (2)

By default, (RefLink[TabView, paclet:ref/TabView]) is enabled:

TabView[{x,y,z}]

By setting (RefLink[Enabled, paclet:ref/Enabled])->(RefLink[False, paclet:ref/False]), (RefLink[TabView, paclet:ref/TabView]) is disabled, but visible in its current state:

TabView[{x,y,z},Enabled->False]

OpenersExampleSubsection7(Spacer1)FrameMargins  (1)

Add margins within the view:

Table[TabView[{x,y,z},FrameMargins->m],{m,{0,10,20}}]

OpenersExampleSubsection8(Spacer1)ImageMargins  (1)

Add margins outside the view:

Table[Framed[TabView[{x,y,z},ImageMargins->m]],{m,{0,10,20}}]

OpenersExampleSubsection9(Spacer1)ImageSize  (1)

Control the overall size of (RefLink[TabView, paclet:ref/TabView]):

Grid[Table[TabView[{x,y,z},ImageSize->{w,h}],{h,{50,70,100}},{w,{50,70,100}}]]

OpenersExampleSubsection10(Spacer1)LabelStyle  (1)

Change the style of the labels:

TabView[{x->a,y->b,z->c},LabelStyle->{Red,Bold}]

OpenersExampleSection3(Spacer1)Applications  (4)

Make a (RefLink[TabView, paclet:ref/TabView]) with pictures of Bessel functions:

TabView[Table[Plot[BesselJ[n,x],{x,0,10}],{n,10}]]

Show some famous cellular automata in a (RefLink[TabView, paclet:ref/TabView]):

TabView[Table[Row[{"rule ",r}]->ArrayPlot[CellularAutomaton[r,{{1},0},40]],{r,{30,90,126,150}}]]

Tab through a list of formulas:

TabView[Table[Row[{Sin[n x],"==",TrigExpand[Sin[n x]]}],{n,10}],10]

Show the GDP of several countries between 1970-2005:

TabView[Tooltip[Show[CountryData[#,"Shape"],ImageSize->{30,30}],#]->DateListPlot[CountryData[#,{{"GDP"},{1970,2005}}],ImageSize->Medium]&/@CountryData["GroupOf10"]]

OpenersExampleSection4(Spacer1)Properties & Relations  (2)

Use (RefLink[Pane, paclet:ref/Pane]) to force linebreaking in the content of (RefLink[TabView, paclet:ref/TabView]):

TabView[Table[Pane[Factor[x^n-1],200],{n,20,25}]]

Dynamic variables will only start updating when displayed:

TabView[{Dynamic[x],Dynamic[x=DateString[],UpdateInterval->1]},1]

TabView[{Dynamic[y],Dynamic[y=DateString[],UpdateInterval->1]},2]

OpenersExampleSection5(Spacer1)Possible Issues  (2)

Rules are used to specify labels for tabs:

TabView[{a->x,b->y}]

Give labels explicitly to display rules in the content area:

TabView[{1->a->x,2->b->y}]

By default, the entire contents are generated before displaying the output:

g={"Beethoven","CastleWall","Cone","Cow"};

Timing@TabView[(#->ExampleData[{"Geometry3D",#}]&)/@g]

Use (RefLink[Dynamic, paclet:ref/Dynamic]) and (RefLink[ImageSize, paclet:ref/ImageSize])->(RefLink[Automatic, paclet:ref/Automatic]) to generate the contents only when displayed:

Timing@TabView[(#->Dynamic[ExampleData[{"Geometry3D",#}]]&)/@g,ImageSize->Automatic]

OpenersExampleSection6(Spacer1)Neat Examples  (2)

Successively nest (RefLink[TabView, paclet:ref/TabView]) objects:

NestList[TabView[{#,#}]&,x,4]

View images of knots retrieved from (RefLink[KnotData, paclet:ref/KnotData]):

TabView[(#->KnotData[#])&/@Take[KnotData[All],10]]

({{DocumentationFooterIconsRelatedFunction.png, ({{See Also}, {(RefLink[SlideView, paclet:ref/SlideView])  ▪  (RefLink[MenuView, paclet:ref/MenuView])  ▪  (RefLink[FlipView, paclet:ref/FlipView])  ▪  (RefLink[PopupView, paclet:ref/PopupView])  ▪  (RefLink[OpenerView, paclet:ref/OpenerView])  ▪  (RefLink[Manipulate, paclet:ref/Manipulate])  ▪  (RefLink[PaneSelector, paclet:ref/PaneSelector])}})}})

({{DocumentationFooterIconsRelatedTutorial.png, ({{Tutorials}, {▪(RefLinkPlain[Views, paclet:tutorial/Views])}})}})

({{DocumentationFooterIconsRelatedGuide.png, ({{Related Guides}, {▪(RefLinkPlain[Dynamic Visualization, paclet:guide/DynamicVisualization])}, {▪(RefLinkPlain[Viewers and Annotation, paclet:guide/ViewersAndAnnotation])}, {▪(RefLinkPlain[User Interface Structuring & Layout, paclet:guide/UserInterfaceStructuringAndLayout])}, {▪(RefLinkPlain[Presentations with the Wolfram System, paclet:guide/PresentationsWithTheWolframSystem])}, {▪(RefLinkPlain[Standalone Interfaces, paclet:guide/StandAloneInterfaces])}, {▪(RefLinkPlain[Creating Inspectors, paclet:guide/CreatingInspectors])}, {▪(RefLinkPlain[Click-Interactive Panels, paclet:guide/ClickInteractivePanels])}, {▪(RefLinkPlain[Computation with Structured Datasets, paclet:guide/ComputationWithStructuredDatasets])}, {▪(RefLinkPlain[Custom Interface Construction, paclet:guide/CustomInterfaceConstruction])}, {▪(RefLinkPlain[Palettes, paclet:guide/Palettes])}})}})

({{(Spacer1), ({{(Spacer1)Related Links}, {(WebLink[DocumentationFooterIconsRelatedLinks-FastIntro.png(Spacer1)Fast Introduction for Programmers: Interactive Interfaces, http://www.wolfram.com/language/fast-introduction-for-programmers/interactive-interfaces/])}})}})