访问QTabBar实例

时间:2009-10-02 09:52:28

标签: c++ qt qt4

如何访问QTabBarQTabWidget

我找到的唯一解决方案是继承QTabWidget并将受保护的QTabWidget::getTabBar()覆盖为公开。还有其他方法吗?

3 个答案:

答案 0 :(得分:6)

tabBar->findChild<QTabBar *>(QLatin1String("qt_tabwidget_tabbar"));

答案 1 :(得分:4)

正如您所提到的,子类化是正确的解决方案,因为它受到保护。像这样:

class TabWidget : public QTabWidget {
public:
    TabWidget(QWidget *p = 0) : QTabWidget(p){}

public:
    QTabBar *tabBar() const { return QTabWidget::tabBar(); }
};

您可以告诉设计师将您的QTabWiget“推广”到TabWidget,然后您将拥有一个可访问的tabBar()功能。

答案 2 :(得分:1)

您想对标签栏做什么?

可能无济于事,但使用stylesheets,您可以自定义QTabWidget子控件:: tab和:: tab-bar。