在添加 QTabWidget 子标签时,往往会添加窗口子部件(QWidget*)
//自定义搜索子部件类 1类型
SearchKeywdWidget *searchWidget = new SearchKeywdWidget(NULL,keyWord);
connect(searchWidget,SIGNAL(signal_clicked_title(QString ,QString )),this,SLOT(slot_clicked_title(QString ,QString )));
searchWidget->searchKeyword(keyWord);
int index = ui.tabWidget->addTab(searchWidget,keyWord);//添加子标签 类型SearchKeywdWidget
ui.tabWidget->setCurrentIndex(index);//激活新增的标签页
//...
//自定义搜索子部件类 2类型
ArticleWidget *article = new ArticleWidget();
article->setArticle(title,context);
int index = ui.tabWidget->addTab(article,title);//添加子标签 类型article
ui.tabWidget->setCurrentIndex(index);//激活新增的标签页
在响应标签的关闭按钮时,进行资源回收
//关闭标签页(包括搜索页和文章详情页)
void AsrDlg::slot_tab_close(int index)
{
//SearchKeywdWidget* 和 ArticleWidget* 两种窗口部件,怎么区分?
//不用区分,直接在各种的析构函数中资源回收即可
QWidget *pItemWidget = ui.tabWidget->widget(index);
if (0 != pItemWidget)
{
delete pItemWidget;
pItemWidget = 0;
}
ui.tabWidget->removeTab(index);
}
//析构函数进行资源回收
SearchKeywdWidget::~SearchKeywdWidget()
{
ClearResultSearchWidget();
}