2

QTabWidgetアクティブなタブインデックスとタブの数がわかっている場合に、でアクティブになっているすべてのタブを閉じるにはどうすればよいですか?すべてのタブを閉じる機能はtabwidget->clear();

4

2 に答える 2

2

これを試しましたか?

// remove all tabs after current
for (int i = tabWidget.count() - 1; i > tabWidget.currentIndex(); --i) {
   tabWidget.removeTab(i);
}

// current tab is now the last, therefore remove all but the last
for (int i = tabWidget.count(); i > 1; --i) {
   tabWidget.removeTab(0);
}
于 2012-10-14T16:49:40.293 に答える
0

実用的なソリューション、これが由来するクラスはQTabWidgetを継承します。

void closeOtherTabsRequested(int index)
{
    auto selectedWidget = widget(index);
    auto tabCount = mTabBar->count();
    for(auto i = tabCount - 1; i >= 0; i--) {
        auto currentWidget = widget(i);
        if(currentWidget != selectedWidget) {
            tabCloseRequested(i);
        }
    }
}
于 2020-05-19T21:58:13.543 に答える