在wxPython中显示大约1000个可点击图像的网格的最有效方法是什么?
目前我正在使用GridSizer
填充StaticBitmap
个对象。但它对500多张图像来说相当慢。
还有一件事是,我左边有一个类别列表框。那就是过滤图像。类别将类似于“全部”,“猫1”,“猫2”等。当我单击“全部”时,必须显示所有图像。
我目前如何做到这一点:
BoxSizer
将包含n
GridSizer
个对象,每个对象一个
类别。我添加StaticBitmap
对象到多个GridSizer
取决于它的类别
属于。 对于300多张图像,这种方法也非常慢。那么,我如何有效地达到同样的效果呢?
答案 0 :(得分:1)
我假设并非所有1000张图片同时出现在屏幕上,对吗?如果是这样,您应该只需加载所需的数字,当用户滚动时,根据需要加载下一组。我认为wxPython列表中的人通常使用DC来在屏幕上显示他们的图像,或者他们使用FloatCanvas小部件。我建议在他们的列表上询问有多位专家在屏幕上绘制图像:https://groups.google.com/forum/#!forum/wxpython-users
答案 1 :(得分:0)
我认为ICON风格的ListCtrl是最好的方法。
如果你看一下wxPython演示,wx.LC_ICON风格的UltimateListCtrl示例就是你可以创建的一个很好的例子。