我有一个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可以处理实时更改吗? 希望我已经清楚地说出了我的问题。
答案 0 :(得分:0)
您需要重做ListItems。基本上这意味着每当有什么变化时,你清空ListCtrl然后重新插入所有内容减去被移动的内容。我发现这是最简单的方法。我尽可能使用ObjectListView而不是ListCtrl,因为我认为它更容易使用和更新。您可能会发现其中一篇文章在这方面很有帮助: