实时更新wx.ListCtrl

时间:2012-02-07 12:02:44

标签: python wxpython

我有一个python练习项目。我打算写一个GUI程序,它可以告诉你每个进程的TCP下载和上传速度。就像nethogs一样,但在Python中使用wxPython作为GUI前端。 该程序应该是这样的:

----- ---------------- ------  -------   --------
 PID    program name    user    send     received
----- ---------------- ------  -------   --------
1937      firefox       root   10 KB/s    50 KB/s
-------------------------------------------------
3720       wget         root   0  KB/s    120 KB/s

这里显示的数据只是虚拟数据(对不起,我无法发布图像。我使用wx.ListCtrl硬编码了一些数据)。

我在GUI编程方面没有太多经验,所以如何在需要时添加/删除一行?比如说,我只是关闭了firefox,所以那行不再存在,或者我只是将一个wget进程加入,并且应该添加到列表中。发送/接收速度可能不恒定,因此我还需要实时更新更改。

我需要一些事件通知机制吗? wx.ListCtrl可以处理实时更改吗? 希望我已经清楚地说出了我的问题。

1 个答案:

答案 0 :(得分:0)

您需要重做ListItems。基本上这意味着每当有什么变化时,你清空ListCtrl然后重新插入所有内容减去被移动的内容。我发现这是最简单的方法。我尽可能使用ObjectListView而不是ListCtrl,因为我认为它更容易使用和更新。您可能会发现其中一篇文章在这方面很有帮助: