【发布时间】:2011-05-05 08:23:28
【问题描述】:
所以我开始使用 wx 来生成我的 GUI。我使用 FlexGridSizer 创建了一个自定义表格,然后我想在按下按钮时清除表格。所以我的方法是:
def clearPressed(self,event):
self.label_ID.Destroy()
self.label_NAME.Destroy()
self.label_ADMIN.Destroy()
self.label_SELECTED.Destroy()
self.label_OPERATION.Destroy()
self.label_STRUCTURE.Destroy()
i = 0
while i < self.nrEntries:
self.idsGUI[i].Destroy()
self.pidsGUI[i].Destroy()
self.aidsGUI[i].Destroy()
self.sidsGUI[i].Destroy()
self.nidsGUI[i].Destroy()
self.stidsGUI[i].Destroy()
i = i + 1
self.clearBut.Destroy()
self.tableTitleLabel.Destroy()
self.tableGrid.Layout()
这些基本上是我在表格网格上的所有组件。此方法适用于 StaticText 按钮单选按钮。但这并没有给我一个表格的外观。所以我用谷歌搜索了一下,发现你不能画出网格的边界。所以我在每个网格位置添加了一个面板,我在上面绘制了我的表格组件。表格看起来更好,但现在 destroy 方法不会清除面板的边界。
我正在创建这样的组件:
panel = wx.Panel(self, -1, style=wx.BORDER_SIMPLE)
wx.RadioButton(panel,-1,self.sids[i])
self.sidsGUI.append(panel)
clearPressed 方法现在会破坏所有组件,甚至部分边框,但不是全部。我的基本 gui 结构如下:
Frame->MainFlexGridSizer->OneVerticalBoxSizer(这包含一些其他按钮和我不想删除的东西) ------------------------------------->TableArrangementFlexGridSizer->VetricalBoxSizer(包含表格标题和一些信息) -------------------------------------------------- --------------------------------->TableFlexGrid(包含边框在销毁时不会消失的表格的实际面板) -------------------------------------------------- --------------------------------->VerticalBoxSizer(一些其他页脚按钮和信息)
问候, 波格丹
【问题讨论】: