您的位置:首页 > 编程语言 > Qt开发

qt使用布局进行窗口切换

2017-08-28 14:32 357 查看
/** 清理一个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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: