版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012020854/article/details/77648449
/** 清理一个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;
}
}