bool TabWidget::canCloseTabs() { if(m_tab_ids.empty()) return true; for(int i = 0; i < count(); ++i) { Tab *tab = dynamic_cast<Tab*>(widget(i)); if(!tab) continue; if(tab->isChild()) { ChildTab* child = (ChildTab*)tab; WorkTab* parent = sWorkTabMgr.getWorkTab(child->getParentId()); if(child->getWindowId() == parent->getWindowId()) continue; } if(!tab->onTabClose()) return false; } return true; }