QGridLayout 添加窗口addWidget函数
初始化布局
依次是从左往右添加第0行,第0列 ;第0行,第1列;第1行,第0列;第1行,第1列;
然后依次对setRowStretch设置行比例参数(4:1),setColumnStretch设置列比例(2:1)
QFramlayout = new QGridLayout();
QFramlayout->setSpacing(5);//设置间距
QFramlayout->addWidget(pfdstructment , 0, 0);//往网格的不同坐标添加不同的组件
QFramlayout->addWidget(enginestructment, 0, 1);
QFramlayout->addWidget(pfdengstructment, 1, 0);
QFramlayout->addWidget(engpfdstructment, 1, 1);
QFramlayout->setRowStretch( 0, 4);//设置行列比例系数
QFramlayout->setRowStretch( 1, 1);
QFramlayout->setColumnStretch(0, 2);
QFramlayout->setColumnStretch(1, 1);
this->setLayout(QFramlayout);//设置顶级布局管理器
切换显示单一页面
动态切换页面时,先使用removeWidget清除窗口和setRowStretch设置比例0不然会导致比例依旧存在
setVisible让窗口实现隐藏功能
/*******************************************************************
** 函数名: RemoveAllPage
** 函数描述: 清除页面
** 参数: painter 画刷
** 返回:
********************************************************************/
void Qflyfram::RemoveAllPage(void)
{
QFramlayout->removeWidget(pfdstructment);
QFramlayout->removeWidget(enginestructment);
QFramlayout->removeWidget(pfdengstructment);
QFramlayout->removeWidget(engpfdstructment);
QFramlayout->setRowStretch( 0, 0);//第二个参数为0表示清除设置比例
QFramlayout->setRowStretch( 1, 0);
QFramlayout->setColumnStretch(0, 0);
QFramlayout->setColumnStretch(1, 0);
pfdstructment ->setVisible(false);
enginestructment->setVisible(false);
pfdengstructment->setVisible(false);
engpfdstructment->setVisible(false);
}
/*******************************************************************
** 函数名: ShowPage
** 函数描述: 显示切换页面
** 参数:
** 返回:
********************************************************************/
void Qflyfram::ShowPage(int index)
{
RemoveAllPage();
if(0 == index){
QFramlayout->addWidget(pfdstructment , 0, 0);//往网格的不同坐标添加不同的组件
QFramlayout->addWidget(enginestructment, 0, 1);
QFramlayout->addWidget(pfdengstructment, 1, 0);
QFramlayout->addWidget(engpfdstructment, 1, 1);
QFramlayout->setRowStretch( 0, 1);//设置行列比例系数
QFramlayout->setRowStretch( 1, 0);
QFramlayout->setColumnStretch(0, 0);
QFramlayout->setColumnStretch(1, 0);
pfdstructment ->setVisible(true);
enginestructment->setVisible(false);
pfdengstructment->setVisible(false);
engpfdstructment->setVisible(false);
}else if(1 == index){
QFramlayout->addWidget(pfdstructment , 0, 0);//往网格的不同坐标添加不同的组件
QFramlayout->addWidget(enginestructment, 0, 1);
QFramlayout->addWidget(pfdengstructment, 1, 0);
QFramlayout->addWidget(engpfdstructment, 1, 1);
QFramlayout->setRowStretch( 0, 0);//设置行列比例系数
QFramlayout->setRowStretch( 1, 1);
QFramlayout->setColumnStretch(0, 0);
QFramlayout->setColumnStretch(1, 0);
pfdstructment ->setVisible(false);
enginestructment->setVisible(true);
pfdengstructment->setVisible(false);
engpfdstructment->setVisible(false);
}else if(2 == index){
QFramlayout->addWidget(pfdstructment , 0, 0);//往网格的不同坐标添加不同的组件
QFramlayout->addWidget(enginestructment, 0, 1);
QFramlayout->addWidget(pfdengstructment, 1, 0);
QFramlayout->addWidget(engpfdstructment, 1, 1);
QFramlayout->setRowStretch( 0, 0);//设置行列比例系数
QFramlayout->setRowStretch( 1, 0);
QFramlayout->setColumnStretch(0, 1);
QFramlayout->setColumnStretch(1, 0);
pfdstructment ->setVisible(false);
enginestructment->setVisible(false);
pfdengstructment->setVisible(true);
engpfdstructment->setVisible(false);
}else if(3 == index){
QFramlayout->addWidget(pfdstructment , 0, 0);//往网格的不同坐标添加不同的组件
QFramlayout->addWidget(enginestructment, 0, 1);
QFramlayout->addWidget(pfdengstructment, 1, 0);
QFramlayout->addWidget(engpfdstructment, 1, 1);
QFramlayout->setRowStretch( 0, 0);//设置行列比例系数
QFramlayout->setRowStretch( 1, 0);
QFramlayout->setColumnStretch(0, 0);
QFramlayout->setColumnStretch(1, 1);
pfdstructment ->setVisible(false);
enginestructment->setVisible(false);
pfdengstructment->setVisible(false);
engpfdstructment->setVisible(true);
}
}
/*******************************************************************
** 函数名: ShowAll
** 函数描述: 显示所有页面
** 参数:
** 返回:
********************************************************************/
void Qflyfram::ShowAll(void)
{
RemoveAllPage();
QFramlayout->setSpacing(5);//设置间距
QFramlayout->addWidget(pfdstructment , 0, 0);//往网格的不同坐标添加不同的组件
QFramlayout->addWidget(enginestructment, 0, 1);
QFramlayout->addWidget(pfdengstructment, 1, 0);
QFramlayout->addWidget(engpfdstructment, 1, 1);
QFramlayout->setRowStretch( 0, 4);//设置行列比例系数
QFramlayout->setRowStretch( 1, 1);
QFramlayout->setColumnStretch(0, 2);
QFramlayout->setColumnStretch(1, 1);
pfdstructment ->setVisible(true);
enginestructment->setVisible(true);
pfdengstructment->setVisible(true);
engpfdstructment->setVisible(true);
}