0

我正在使用 Qt 框架制作应用程序,但遇到了一个问题:我定义了一个像这样的 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

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

4

1 回答 1

1

这仅仅意味着您必须注意访问组件:来自文档:

void QTabWidget::setTabBar ( QTabBar * tb ) [受保护]

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

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

于 2013-09-05T19:38:04.000 回答