QT5 QTabWidget 隐藏Tab 或 显示Tab 正确的解决方案
T.先森:
一般常用set/get,这是我修改后的
void BaseTabWidget::setTabHidden(int index, bool hidden)
{
if (this->plusTabs.size() == 0) {
this->reloadPlusTabs();
}
if (index > this->plusTabs.size() - 1) {
return;
}
if (hidden) {
if (!plusTabs[index].status) {
//获取当前真正要处理的index
int realIndex = getRealIndex(index);
if (realIndex == -1) {
return;
}
//添加tab
BaseTabWidgetTab tempPt = plusTabs[index];
QString text = tempPt.text;
QIcon icon = tempPt.icon;
QWidget* tabWidget = tempPt.widget;
this->insertTab(realIndex, tabWidget, icon, text);
//设置映射的状态
(&plusTabs[index])->status = true;
}
}
else {
if (plusTabs[index].status) {
//获取当前真正要处理的index
int realIndex = getRealIndex(index);
if (realIndex == -1) {
return;
}
//删掉tab
this->removeTab(realIndex);
//设置映射的状态
(&plusTabs[index])->status = false;
}
}
}
|