Python 加快显示大量数据的正确方法?

Python 加快显示大量数据的正确方法?,python,wxpython,Python,Wxpython,关于stackoverflow的第一个问题。已经阅读了一段时间,同时尝试学习Python和wxPython 我正在编写一个小应用程序,用于以自定义方式在屏幕上显示大量数据。数据是Python中存储在对象中的股票信息。大约100只股票应该同时出现在屏幕上。每个stockobject有35个属性,因此它可以同时显示3500个属性。我想要不同的字体,大小和颜色取决于属性。根据用户(me)的输入,每个stockobject的背景都在变化 所以我试着用wxPython和很多StaticText控件制作一个

关于stackoverflow的第一个问题。已经阅读了一段时间,同时尝试学习Python和wxPython

我正在编写一个小应用程序,用于以自定义方式在屏幕上显示大量数据。数据是Python中存储在对象中的股票信息。大约100只股票应该同时出现在屏幕上。每个stockobject有35个属性,因此它可以同时显示3500个属性。我想要不同的字体,大小和颜色取决于属性。根据用户(me)的输入,每个stockobject的背景都在变化

所以我试着用wxPython和很多StaticText控件制作一个接口。加载耗时5秒,使用timeit模块计时

谷歌搜索网络让我想到了在设备上下文中绘制数据。这只花了0.1秒。为了使应用程序可点击,我在内存中绘制了第二张图片,每个属性都有特定的颜色。单击显示图片的面板时,我将坐标与内存中的DC进行比较,以计算单击的内容。现在我将要编写一个sizer例程,以便用户可以更改fontsize

我的问题很简单:你认为我选择了正确的方法吗? 或者有没有一种更简单、更具python风格的方法来实现这一点,而不使用花了很长时间加载的StaticText

网格不是我的解决方案,因为我希望数据以非常特定的布局显示。为了能够用网格做到这一点,我必须将网格设置为2px和high,然后将所有单元格合并到一起

编辑:

用于下载控制器图片的链接,如昨天所示:


丑陋,而且不是我想要的那样。这是因为我试图编写自己的sizer例程。

您可以尝试在加载过程中冻结整个帧,如下所示:

frame.Freeze()
try:
    # load all data
finally:
    frame.Thaw()

但是,一般来说,拥有那么多窗口控件会影响性能,因此自定义图形是唯一的解决方案。通过为一个股票创建自己的自定义控件(使用自己的EVT_绘制处理程序等),然后创建100个,您可以稍微简化一些事情。这将使你的DC计算更容易。有关更多信息,请参阅。

如果数据不敏感,请发布一张图片,以帮助更好地了解您要实现的目标的规模。我试图发布一个截图,但我不被允许,因为我是一个新成员…你可以上传截图并发布链接。我很愚蠢。。。。当然,我可以给你一个链接,而不是张贴图片..冻结不会使它更快地加载。在不同的静态文本中,仍然要慢500倍,所以我想我选择了正确的自定义绘图方法。谢谢你的回答。