QTabWidget 子选项卡关闭前(removeTab)不同类型的窗口子部件资源回收

在添加 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();
}
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值