将选项卡添加到QTabWidget。是空的?

时间:2015-10-06 18:15:01

标签: qt tabs qwidget

嗯,问题是我在qtcreator中创建了tabwidget,有很多标签,在标签中有许多lineedit和其他对象。 tabWidget的可关闭属性设置为true。 我执行程序并关闭选项卡,但是当我想重新打开选项卡时,它是空的,我正在使用此代码:

tabs->addTab(new QWidget(),"TAB 1");

我想在qtcreator的设计上使用相同的制表符。

1 个答案:

答案 0 :(得分:0)

您的问题是您在代码中添加了空小部件:

tabs->addTab(new QWidget(),"TAB 1");

相反,您需要保留小部件并将其添加为:

QWidget* widget; // it is stored
int index = ui->tabWidget->addTab(widget, "TAB 1");

在哪里拍摄这些小部件?

仅将closable设置为true是不够的,您还可以使用signal / slot:

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

最后:

void YourWindow::closeTab(int index)
{
    // do something else

    QWidget* widget = ui->tabWidget->widget(index);
    ui->tabWidget->removeTab(index);

    // here you can remember it and use later when adding tab
}