2015-10-06 41 views
0

那么,事情是我有一个tabwidget在qtcreator创建,与许多选项卡和标签中有许多lineedit和其他对象。 tabWidget的可关闭属性设置为true。 我执行程序并关闭标签,但是当我想重新打开该选项卡,它是空的,我用这个代码:将选项卡添加到QTabWidget。是空的?

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

我想使用相同的标签上qtcreator的设计创造。

+0

嘛。我找到了解决方案:ui-> tabWidget-> addTab(ui-> name_tab,QIcon(“icon.png”),“NAMETAB”); – MRlinux

+0

将其发布为其他人可以在以后轻松找到并使用它的答案 – demonplus

回答

0

你的问题是,你在你的代码中添加空插件:

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

相反,你需要让你的小部件,并将它们添加这样的:

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

凡服用这些小部件?

这是不够的,可关闭的设置为true,则还使用信号/槽:

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 
} 
+0

您的解决方案很好,只是用户关闭的最后一个选项卡,而不适用于特定的选项卡。 – MRlinux

+0

好吧,我认为这是由你来正确地存储小部件。我并不是说只存储最后一个标签 – demonplus

相关问题