在Qt中使用按钮打开可关闭的标签

时间:2012-08-29 06:29:52

标签: qt qt4

我正在Qt中制作一个GUI程序。

我有一个选项卡,在该选项卡中有按钮,我想要的是当单击该按钮时它应该在同一个小部件中打开一个选项卡,它应该是可关闭的。 我怎样才能做到这一点?一个示例代码将是好的。

谢谢

1 个答案:

答案 0 :(得分:2)

我不完全理解这个问题,但这是我最好的回答。我想您使用QTabWidget作为标签。您可以添加窗口小部件并通过以下代码选择它:

QWidget* widget;
int index = ui->tabWidget->addTab(widget, "Description");
ui->tabWidget->setCurrentIndex(index);

您无法关闭单个标签,但可以截取关闭事件:

ui->tabWidget->setTabsClosable(true);
connect(ui->tabWidget, SIGNAL(tabCloseRequested(int)), this, SLOT(closeTab(int)));

并处理不需要的关闭事件:

void MainWindow::closeTab(int index)
{
    if (index == 0)
    {
        return; // don't close the first tab
    }
    QWidget* widget = ui->tabWidget->widget(index);
    ui->tabWidget->removeTab(index);
    delete widget;
}

修改

您可以插入标签:

ui->tabWidget->insertTab(index, widget, "Description");

以下是QTabWidget类的documentation