1
我有一个网格布局,显示图像像下面的图像。我希望能够在任何位置交换两个图像。动态更改网格布局项目的位置
层次结构是这样的:
ScrollArea-> GridLayout->标签[N] - >像素图
有Ñ标签在网格布局的动态创建的码。
可以删除我想要的列/行中再次创建的所有内容,但我试图找到更优雅的方式来执行此操作。有小费吗?
我有一个网格布局,显示图像像下面的图像。我希望能够在任何位置交换两个图像。动态更改网格布局项目的位置
层次结构是这样的:
ScrollArea-> GridLayout->标签[N] - >像素图
有Ñ标签在网格布局的动态创建的码。
可以删除我想要的列/行中再次创建的所有内容,但我试图找到更优雅的方式来执行此操作。有小费吗?
如果你只是想使用网格布局...
void YourClass::swapWidgets(QWidget *widgetA, QWidget *widgetB)
{
int indexA = yourGridLayout->indexOf(widgetA);
int indexB = yourGridLayout->indexOf(widgetB);
int row1, column1, rowSpan1, columnSpan1;
int row2, column2, rowSpan2, columnSpan2;
yourGridLayout->getItemPosition(indexA, &row1, &column1, &rowSpan1, &columnSpan1);
yourGridLayout->getItemPosition(indexB, &row2, &column2, &rowSpan2, &columnSpan2);
yourGridLayout->takeAt(indexA);
yourGridLayout->takeAt(indexB);
yourGridLayout->addWidget(widgetB, row1, column1, rowSpan1, columnSpan1);
yourGridLayout->addWidget(widgetA, row2, column2, rowSpan2, columnSpan2);
}
我会做一个表视图,而不是处理一个网格布局。 – vahancho
不确定它会帮助我。位置,列和行会有一些变化。有没有办法自动重新排列我删除列的项目? –
我可以说的是,如果谈论动态更改内容,表格视图比布局更灵活。 Qt布局主要用于静态GUI元素。 – vahancho