简述
QTabWidget类提供了选项卡式的窗口控件。
功能详述
选项卡小部件提供了一个选项卡栏(请参阅QTabBar)和一个“页面区域”,该页面区域用于显示与每个选项卡相关的页面。默认情况下,选项卡栏显示在页面区域上方,但是可以使用不同的配置(请参见TabPosition)。每个选项卡都与一个不同的窗口小部件(称为页面)相关联。页面区域中仅显示当前页面。其他所有页面均被隐藏。用户可以通过单击其选项卡或按Alt +字母快捷键(如果有的话)来显示其他页面。
使用QTabWidget的正常方法是执行以下操作:
创建一个QTabWidget。
为每一个标签页创建一个QWidget作为页控件,但不要为它们指定父类。
向页控件中插入子控件,使用使用布局工具来对它们进行布局。
调用addTab()或者insertTab()将页控件插入标签控件,并为每一个标签分配一个标签字符串,快捷键可加可不加。
tabPosition和tabShape分别用于定义标签的位置和形状。
当用户选择一个页面的时候,currentChanged信号会被发出
currentIndex()和currentWidget()分别用于获取当前页面的页号和当前页控件。可以通过widget()获取当前页面控件的指针。setCurrentWidget或者setCurrentIndex可以用来展示特定的页面。
使用setTabText和setTabIcon来改变标签文本和icon。使用removeTab来移除标签页。
使用setTabEnabled来使能或者失能特定的标签页。
在分离复杂对话框上,QTabWidget是一个非常好的选择。另一个可替代的选择是在QStackedWidget加上页面导航功能,例如QToolBar或者QListWidget。
QTabWidget的大多数功能由一个QTabBar和一个QStackedWidget提供。
使用
效果
上图是Qt creator中某个页面的效果。可以作为设计参考。
这是一个带有三个空页面的标签控件示例,用于展示QTabWidget的基本用法。
源码
QTabWidget *tabWidget = new QTabWidget;
tabWidget->setTabShape(QTabWidget::Triangular);
tabWidget->setTabPosition(QTabWidget::West);
QWidget *pageWidget_0 = new