在不同的情况下,策略会有所不同。假设你只是使用wxPython作为演示目的,并且你有一个单独的模块/包来处理数据。 wxPython控件仅从数据抽象层获取数据。
情景I:将所有日志数据加载到内存中,并使用wx.listctrl或wx.listview来显示行。
场景二:更新wx视图时从数据库获取数据。
在场景I中,您只需设置一个变量即可记住用户界面已经读取的位置,或者即使您将日志作为列表加载,也可以简单地使用列表滑动。通过向下滚动/向上自动更新视图可以在场景I中实现,因为所有数据都已加载,并且不会再创建sqlite数据库连接。在场景II中通过向下滚动/向上滚动来实现自动更新是一个不好的选择,因为会有太多的数据库操作 - 想象你很快滚动下来期望获得第5000行?
在场景II中,您可以设置页面大小并使用LIMIT/OFFSET来获取所需的数据集。你保留另一个变量的偏移号码。通过变量page_size和offset,您可以简单地获取数据并更新wx视图。这种情况对于限制内存使用特别有用。我不知道你的日志有多大,但毕竟把它全部加载到内存中并不是一个好主意,因为日志不断增长,你可能还需要同时加载其他相对较大的数据集。
我正在寻找一个导师,我会付出教给我一些这些东西(通过webex)..它只是让我长期得到这个东西我自己做,我需要一些方向.. obv for pay 。你有兴趣吗? – user1314011 2012-04-05 15:43:42
很抱歉,我太忙了,不能成为你的导师。我相信你会在你身边找到一个擅长wxPython的人。感谢您的询问;-) – user866903 2012-04-06 03:03:37