0
votes

As a follow up of " Hide label text for Qt tabs without setting text to empty string " :

Can I directly access the widgets within the tabs of the QTabBar. I do not mean the corresponding widget which is shown when I select a tab, but the tab's widgets (so in the screenshot below the log label and log icon).

TabBar

I have tried QTabBar::findChildren, but with no success. Any idea?

1
Did you try the QTabBar::tabButton() and QTabBar::tabIcon() functions?vahancho
tabIcon gives me a const QIcon, which I can not modify - OK I can set an entirely new icon. tabButton always returns nullptr: Tried QWidget *w = this->m_tabBar->tabButton(0, QTabBar::RightSide); with left and right side.Horst Walter

1 Answers

2
votes

QTabBar header sections are not actually widgets. They are drawn by QStylePainter inside QTabBar::paintEvent. Thus you can't get access to them. As a workaround you can add a tab with an empty text and set a custom widget to it:

QTabBar *bar = new QTabBar;
bar->addTab("");

QLabel *label = new QLabel("my label");
bar->setTabButton(0, QTabBar::LeftSide, label);