gpt4 book ai didi

qt - 动态更改网格布局项的位置

转载 作者:行者123 更新时间:2023-12-02 08:03:09 24 4
gpt4 key购买 nike

我有一个网格布局,显示如下图所示的图像。我希望能够在任意位置交换两个图像。

Grid of images

层次结构如下:

ScrollArea->GridLayout->Label[n]->Pixmap

在代码中动态创建的网格布局中有 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);
}

关于qt - 动态更改网格布局项的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33140244/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com