我无法让wx.Panel正确刷新

时间:2019-07-02 23:10:38

标签: python wxpython wxpython-phoenix

我有一个包含此模块的应用程序。该模块的工作是获取RSS提要并将其加载到应用程序中,具体取决于用户选择的RSS提要提供程序。当我不尝试从上一个查询中删除条目时,该模块可以完美地完成其工作。

当我将.Clear()方法添加到sizer时,它包含查询中UI中所有以编程方式添加的行,它们将从内存中删除,但仍保留在UI中。我尝试了许多不同的方法来进行UI更新,但事实并非如此。因此,现在每组新的查询行都被涂在旧的查询行上。

这是模块的要点。您可以直接运行它: https://gist.github.com/TiMladenov/64e55cafd4200373ba1f9ab82160cc00

复制步骤: 1.选择第一个或第二个下拉选项 2.然后选择第三个

这样,问题将会更加明显。

我尝试过调用.Layout()、. Update()、. Fit()到使该模块正常工作的各自对象,但似乎没有一个能完成其工作。或者我在某个地方失败了。。。

1 个答案:

答案 0 :(得分:1)

您仅缺少Clear()类中wx.BoxSizer方法的一个选项。

更改行(87):

self.RssPanelList.Clear()

收件人:

self.RssPanelList.Clear(delete_windows=True)

问题是方法Clear()在默认情况下不会破坏小部件。因此,您清空了sizer,但是小部件仍然保留并且在彼此之上绘制。

将来最好发布MWE。在问题中使用MWE,获得答案的机会会大大提高。