Qt 使用布局进行窗口切换

/** 清理一个QLayout中的所有QWidget并放入QList中
 * @brief PublicClass::clearLayout
 * @param layout
 * @param wList
 * @return
 */
bool PublicClass::clearLayout(QLayout *&layout,QList<QWidget*>&wList)
{
    QLayoutItem *item = NULL;
    if(!layout){
        setLastError("PublicClass::clearLayout:layout is NULL");
        return false;
    }
    while(NULL!=(item = layout->takeAt(0))){
        item->widget()->close();//关闭但不释放
        wList.append(item->widget());
        item = NULL;
    }
    return true;
}
/** 清理一个QLayout中的所有QWidget
 * @brief PublicClass::clearLayout
 * @param layout
 * @return
 */
bool PublicClass::clearLayout(QLayout *&layout)
{
    QLayoutItem *item = NULL;
    if(!layout){
        setLastError("PublicClass::clearLayout:layout is NULL");
        return false;
    }
    while(NULL!=(item = layout->takeAt(0))){
        item->widget()->close();//关闭但不释放
        item = NULL;
    }
    return true;
}
/** 把QList<QWidget*>放入QLayout中
 * @brief PublicClass::addLayoutByWidgetList
 * @param wList
 * @param layout
 */
void PublicClass::addLayoutByWidgetList(QList<QWidget*>wList, QLayout *layout)
{
    clearLayout(layout);
    for(int i=0;i<wList.size();++i) {
        auto var = wList.at(i);
        layout->addWidget(var);
    }
}
/** 把QWidget放入QLayout中
 * @brief PublicClass::addLayoutBy
 * @param w
 * @param layout
 */
void PublicClass::addLayoutBy(QWidget*&w, QLayout*&layout)
{
    clearLayout(layout);
    layout->addWidget(w);
}
/** 删除layout中的所有控件
 * @brief PublicClass::deleteLayoutItems
 * @param layout
 */
void PublicClass::deleteLayoutItems(QLayout*layout)
{
    QLayoutItem *item = NULL;
    while(NULL!=(item = layout->takeAt(0))){
        delete item->widget();//释放
        delete item;
        item = NULL;
    }
}
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值