1.层叠:先按照顺序激活窗口;再层叠;可解决中途某个窗口激活了,导致层叠不整齐;
void GraphsInfo::onCascade()
{
QList<QMdiSubWindow*> subWindows = ui->mdiArea->subWindowList();
for ( auto wid : subWindows )
{
ui->mdiArea->setActiveSubWindow( wid );//解决中间某个窗口激活了,导致没有进行整齐的堆叠
}
ui->mdiArea->cascadeSubWindows();
return;
}
2.平铺:默认按照创建的顺序平铺(逆序),按照下方的设置可进行从小到大(正序)平铺;
void GraphsInfo::onTile()
{
QList<QMdiSubWindow*> subWindows = ui->mdiArea->subWindowList();
for ( int i = subWindows.size() - 1; i >= 0; --i )
{
auto wid = subWindows.at( i );
ui->mdiArea->setActiveSubWindow( wid );//解决没有按照从小到大创建的顺序排列的问题
}
ui->mdiArea->setActivationOrder( QMdiArea::WindowOrder::ActivationHistoryOrder );
ui->mdiArea->tileSubWindows();
return;
}