法一:直接隐藏标签
1.头文件.h定义
QWidget* af;
2.在响应槽函数中添加增加&隐藏标签tab(这里我是通过复选框是否被选中来控制tab的个数)
double tabNum = ui.tabWidget->count(); if (ui.cbxDoubleModel->isChecked() == true) { //这里是初始化判断一下tab个数,个数为1才会添加标签,个数为2不会添加 if(tabNum == 1) { ui.tabWidget->insertTab(1, af, QString::fromStdWString(L"模板二")); } } else { af = ui.tabWidget->widget(1); //目的是在标签1移除之前,先将其保存下来,否则不能恢复该标签 ui.tabWidget->removeTab(1); }
法二:设置标签不可见+将标签设置透明色从而达到隐藏标签的目的
//隐藏标签1 ui.tabWidget->setTabEnabled(0,false); ui.tabWidget->setTabEnabled(1,true); ui.tabWidget->setStyleSheet("QTabBar::tab:disabled {width: 0; color: transparent;}"); //隐藏标签2 ui.tabWidget->setTabEnabled(0,true); ui.tabWidget->setTabEnabled(1,false); ui.tabWidget->setStyleSheet("QTabBar::tab:disabled {width: 0; color: transparent;}"); //全部隐藏标签 ui.tabWidget->setTabEnabled(0,false); ui.tabWidget->setTabEnabled(1,false); ui.tabWidget->setStyleSheet("QTabBar::tab:disabled {width: 0; color: transparent;}"); //全部显示标签 ui.tabWidget->setTabEnabled(0,true); ui.tabWidget->setTabEnabled(1,true); ui.tabWidget->setStyleSheet("QTabBar::tab:abled");
注:此外还有以下方法隐藏Tab标签:
ui.tabWidget->tabBar()->hide(); //整个tabbar隐藏掉 或 ui.tabWidget->findChildren<QTabBar*>().at(0)->hide();
效果展示