我无法使wx.Panel正确刷新

2022-10-02 00:44:06 发布

您现在位置:Python中文网/ 问答频道 /正文

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

当我将.Clear()方法添加到sizer中时,它包含从查询中以编程方式添加到UI中的所有行,这些行将从内存中删除,但仍保留在UI中。我尝试了很多不同的方法来更新UI,但是没有。所以现在,每一组新的查询行都被绘制在旧的查询行上

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

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

这样问题就会更加明显

我尝试过调用.Layout(),.Update(),.Fit()到它们各自的对象,这些对象使这个模块工作,但似乎没有一个能够完成它们的工作。或者我失败了


Tags: 模块对象方法内存用户应用程序ui编程方式提供者条目rssclear行将sizer
1条回答
网友
1楼 ·

wx.BoxSizer类中,Clear()方法只缺少一个选项

更改行(87):

self.RssPanelList.Clear()

收件人:

self.RssPanelList.Clear(delete_windows=True)

问题是方法Clear()在默认情况下不会销毁小部件。因此,您清空了sizer,但是小部件仍然存在,并且在彼此的顶部绘制

将来如果你发布一个MWE会更好。如果问题中有一个MWE,你得到答案的机会会大得多