在wxPython GridSizer中替换项目

3 投票
1 回答
772 浏览
提问于 2025-04-26 18:44

我有一个 wx.Frame,里面有一个 wx.GridSizer。这个网格里放了几个自定义的 wx.Panel。我想把网格里两个单元格的内容互换一下。我尝试了很多方法,比如用 DetachGetItemInsert,但是都没成功。

举个例子,我有一个 3x3 的网格,里面有 8 个元素(我的自定义面板),编号从 0 到 7。在这种情况下,网格的最后一个单元格是空的。我想把最后一个项目(grid[7])移动到最后一个单元格(grid[8])。

我该怎么做呢?如果最后一个单元格不是空的,情况又会有什么不同呢?

暂无标签

1 个回答

2

'panelInGrid7' 是你在 grid[7] 中的一个面板实例,在 gridBagSizer 的位置中,它位于 (2, 1) 这个坐标。

sizer.Detach(panelInGrid7)
sizer.Add(panelInGrid7, (2,3))

如果 (2, 3) 这个位置不为空,你也需要把那个项目移开,然后再把它放到你想要的位置。

撰写回答