【问题标题】:wx.Panel borders dont get destroyed by Destroy() methodwx.Panel 边框不会被 Destroy() 方法破坏
【发布时间】: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(一些其他页脚按钮和信息)

问候, 波格丹

【问题讨论】:

    标签: python wxpython wxwidgets


    【解决方案1】:

    这似乎是一种非常复杂的方法。你看过使用 wxGrid 吗?您可能会失去一点灵活性,但您不必编写大量代码来处理诸如此类的日常网格管理任务。

    【讨论】:

      【解决方案2】:

      您说“clearPressed 方法现在会破坏所有组件甚至部分边框,但不是全部。”是什么意思?这是否意味着您在销毁所有组件后在框架上看到了一些伪影?如果是这样,请尝试在 clearPressed 方法之后调用顶部框架的 Refresh() 方法。此方法将重绘框架及其所有子框架。

      【讨论】:

      • 嗯,当前的硬编码修复是破坏整个框架并创建一个新框架。将尝试 Refresh() 方法。谢谢。
      • DeleteWindows() 对我有用,如果其他人有兴趣的话。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-14
      • 1970-01-01
      • 2016-01-03
      • 1970-01-01
      • 2020-02-15
      • 2021-10-25
      • 1970-01-01
      相关资源
      最近更新 更多