wxPython将大量图像添加到wx.scrolled窗口中
我正在尝试在GridSizer中向滚动窗口添加大约1500个位图。它们已成功加载,但有点慢 我的问题是:只要我滚动快一点,整个东西就会冻结8-10秒 以下是相关代码:wxPython将大量图像添加到wx.scrolled窗口中,wxpython,scrolledwindow,Wxpython,Scrolledwindow,我正在尝试在GridSizer中向滚动窗口添加大约1500个位图。它们已成功加载,但有点慢 我的问题是:只要我滚动快一点,整个东西就会冻结8-10秒 以下是相关代码: class EmojiDBTab(wx.ScrolledWindow): def __init__(self, parent): wx.ScrolledWindow.__init__(self, parent) self.SetScrollbars(1, 10, 1, 10)
class EmojiDBTab(wx.ScrolledWindow):
def __init__(self, parent):
wx.ScrolledWindow.__init__(self, parent)
self.SetScrollbars(1, 10, 1, 10)
dbtab_sizer = wx.GridSizer(len(TEST_UNICODE_EMOJI) / 10 + 1, 10, 0, 0)
for unicode in TEST_UNICODE_EMOJI:
emoji_symbol = EmojiBitmap(wx.Bitmap(unicode_to_pngfilename(unicode)),
TEST_UNICODE_EMOJI[unicode])
dbtab_sizer.Add(wx.StaticBitmap(self, -1, emoji_symbol.bitmap))
self.SetSizer(dbtab_sizer)
有没有办法避免滚动后的大延迟
谢谢 有两种选择。您可以加载屏幕上显示的图像数量,然后在用户滚动时加载更多图像。这可能会非常有效。如果您不想让用户看到它们正在加载,那么加载两个页面,只需加载滚动事件即可
另一个要考虑的选项是在文件夹中创建图像的缩略图,然后显示这些缩略图。这将大大加快加载速度,并可能解决冻结问题
我想到的另一个选择是使用一个不同的小部件,比如wx.lib.imagebrowser,它是为这类事情而设计的。谢谢。缩略图非常快,但是如何使用ImagePanel?它是否与普通面板一样,但针对位图进行了优化?理想情况下,我希望能够轻松地将文件中的图像加载到其中。查看文档中的类层次结构,您似乎会像使用常规面板一样使用ImagePanel。我需要查看来源以确定,谢谢你的回答!你所建议的一切对我来说都很好,但我的问题是静态位图的大小。我打开了一个新线程: