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