Layout类中没有直接的swap方法,但是通过其他方法的组合就可以实现交换layout中控件的交换
1 QWidget *w1 = anibutton[1],*w2 = anibutton[3];
2 int p1 = ui->horizontalLayout->indexOf(w1);
3 int p2 = ui->horizontalLayout->indexOf(w2);
4 qDebug()<<"p1"<<p1;
5 qDebug()<<"p2"<<p2;
6 if(p1>p2)std::swap(p1,p2);
7 ui->horizontalLayout->removeWidget(w1);
8 ui->horizontalLayout->removeWidget(w2);
9 ui->horizontalLayout->insertWidget(p1,w2);
10 ui->horizontalLayout->insertWidget(p2,w1);