QTabWidget how to hide pane only?

Tab picture Tab · Sep 27, 2013 · Viewed 9.1k times · Source

I have added a QToolButton as corner widget in QTabWidget which is checkable. I want to hide all tabs (panes only) when the tool button is unchecked. I tried to connect button's signal clicked(bool) with all tab's setVisible(bool) slot not working but. I also connected tabwidget's setvisible to the signal but complete widget became invisible(it was a silly trial). Is there any way to make only pane invisible and tab bar will not disappear ?


Edit: Code (ui have a tabwidget and two tabs namely tab and tab_2)

ui->setupUi(this);
QToolButton * b = new QToolButton;
b->setCheckable(true);
b->setChecked(true);
b->setAutoRaise(true);
b->setText("Hide Tabs");
ui->tabWidget->setCornerWidget(b);
connect(b,SIGNAL(clicked()),ui->tab,SLOT(hide()));
connect(b,SIGNAL(clicked()),ui->tab_2,SLOT(hide()));

Answer

Anatoli picture Anatoli · Apr 25, 2014

Use qFindChild to find the QTabBar within the QTabWidget:

QTabBar *tabBar = qFindChild<QTabBar *>(ui->tabWidget);
tabBar->hide();

For Qt5:

QTabBar *tabBar = ui->tabWidget->findChild<QTabBar *>();
tabBar->hide();