Qt设置TabBar

时间:2013-09-05 19:30:44

标签: c++ qt

我正在使用Qt Framework制作应用程序,但遇到了一个问题: 我定义了像这样的TabWidget

QTabWidget *armaTab = new QTabWidget();
armaTab->setContentsMargins(0, 0, 0, 0);
armaTab->setTabPosition(QTabWidget::North);
armaTab->setObjectName(QString::fromUtf8("armaTab"));

然后我尝试添加一个像这样的QTabBar:

QTabBar *tabBar = new QTabBar();
tabBar->setContentsMargins(0, 0, 0, 0);
tabBar->setFont(*font);
tabBar->setObjectName(QString::fromUtf8("armaTabBar"));
armaTab->setTabBar(tabBar);

我收到了这个错误:

error: 'void QTabWidget::setTabBar(QTabBar*)' is protected
error: within this context

有人可以解释我的错误所在吗?

1 个答案:

答案 0 :(得分:1)

这只是意味着您必须注意访问该组件:来自docs:

  

void QTabWidget :: setTabBar(QTabBar * tb)[protected]

     

用标签栏tb替换对话框的QTabBar标题。请注意,必须在添加任何选项卡之前调用此方法,否则行为未定义。

我认为您可以简单地将QTabWidget子类化以访问受保护的成员...