将标签添加到QTabWidget时显示问题

时间:2018-07-12 14:35:19

标签: c++ qt tabs qtabwidget

我正在尝试将标签添加到现有的QTabWidget。我在QT Designer中使用一个现有标签页布置了标签页。然后,我以编程方式添加了一个标签。在视觉上,第一个标签页几乎完全消失,因为新标签页与它重叠。如果我尝试单击原始选项卡,它将完全消失,并由新选项卡代替。添加其他选项卡可以正常工作,但原始选项卡仍然不存在。

我尝试从等式中删除QT设计器,然后复制了代码。我仍然有同样的问题。这是我的代码现在的样子:

outputLogGroupBox是一个QGroupBox *

static QTabWidget *diagnosticsTabWidget;

diagnosticsTabWidget = new QTabWidget(m_qUI.outputLogGroupBox);
diagnosticsTabWidget->setObjectName(QStringLiteral("diagnosticTabWidget"));
diagnosticsTabWidget->setGeometry(QRect(16, 79, 421, 551));

QWidget * outputTab = new QWidget();
outputTab->setObjectName(QStringLiteral("Output"));

diagnosticsTabWidget->addTab(outputTab, QString());
diagnosticsTabWidget->setTabText(diagnosticsTabWidget->indexOf(outputTab), QStringLiteral("Output"));

diagnosticsTabWidget->setCurrentIndex(0);
diagnosticsTabWidget->setHidden(false);



QWidget * newTab = new QWidget();
diagnosticsTabWidget->addTab(newTab, "test");

如果我省略了newTab的创建,则可以看到我的原始选项卡(outputTab)很好。创建第二个选项卡后,我看到一个选项卡,其一部分具有原始选项卡的名称(输出)和第二个选项卡的名称(测试)。如果添加第三个选项卡,除了第三个选项卡外,其他功能与第二个选项卡相同。单击任何一个选项卡都会显示一组看起来正确的选项卡,而原始选项卡将丢失。

1 个答案:

答案 0 :(得分:0)

我是个白痴。

在尝试使其他东西起作用时,我仔细研究了样式表并添加了以下内容:

setStyleSheet("QTabBar::tab:first {max-width: 0px;}");

很明显,当只有一个选项卡时,但这不会影响任何事情,但是当一个选项卡又添加了第二个选项卡时……