JUCE常规控件之TabbedComponent

TabbedComponent可称为“选项卡页面”、“标签式界面”等等,常用于“选项”、“系统设置”等对话框。稍加变通,即可实现微软Office的Ribbon那种UI形式。

使用选项卡,关键有2:

1、声明,创添显设删。同其他普通控件:

TabbedComponent*  tabs;	// 内容组件类中声明
/* 内容组件类的构造函数中创建选项卡,构造1参为卡标签的位置(本例位于顶部),枚举值来自于TabbedButtonBar类,而后设置其高度,添加并显示之 */
tabs = new TabbedComponent (TabbedButtonBar::TabsAtTop);
tabs->setTabBarDepth (25);  

addAndMakeVisible (tabs); // 内容组件添加并显示选项卡
deleteAndZero (tabs);	 // 内容组件的析构函数中销毁
tabs->setBounds (400, 200, 500, 400); // 内容组件中布局定位

2、选项卡添加子组件。内容组件的构造函数中,创建TabbedComponent选项卡对象之后:

// 添加标签项。1参标签名称,2参背景色,
// 3参为所添加的子组件,4参为是否自动销毁3参
tabs->addTab (L"第1个卡标签", Colours::beige, new MyComponentA(), true);
tabs->addTab (L"第2个卡标签", Colours::pink,  new MyComponentB(), true);
tabs->addTab (L"第3个卡标签", Colours::black, new MyComponentC(), true);

tabs->setCurrentTabIndex (0);  	// 初始显示0号标签组件(第一个)

TabbedComponent单继承自Component类,其新增的重要成员函数:
 setOrientation () 改变选项卡布局样式(标签按钮显示在顶边或侧边)
 getOrientation () 返回当前的选项卡布局
 setTabBarDepth () 指定选项卡按钮栏的厚度
 getTabBarDepth () 返回选项卡按钮栏的厚度
 setOutline () 设置内容组件的边框宽度
 setIndent () 设置内容组件的缩进
 addTab () 添加选项卡
 setTabName () 设置选项卡的名称
 removeTab () 移除某个选项卡
 getNumTabs () 返回选项卡的数量
 getTabNames () 返回所有选项卡的名称(返回值为StringArray)
 getTabContentComponent () 返回某个选项卡的内容组件
 setTabBackgroundColour () 设置某个选项卡的背景颜色
 setCurrentTabIndex () 显示指定的选项卡
 getCurrentTabIndex () 返回当前所显示的选项卡的索引
 getCurrentTabName () 返回当前所显示的选项卡的名称
 getCurrentContentComponent () 返回当前所显示的选项卡的内容组件