首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >wxPython将多个图像添加到面板问题

wxPython将多个图像添加到面板问题
EN

Stack Overflow用户
提问于 2018-10-23 21:39:42
回答 1查看 134关注 0票数 0

我正在尝试使用另一种方法将位图添加到GridSizer中:

代码语言:javascript
运行
复制
def populate_grid_with_emojis(self, category):
    for i in range(len(self.emoji_categories[category])):
        emoji_string = self.emoji_categories[category][i].lower()
        if '_skin_tone' in UNICODE_EMOJI[STRING_UNICODE[emoji_string]]:
            continue
        init_emoji = wx.Image(unicode_to_filename(STRING_UNICODE[emoji_string], 32))
        emoji = EmojiBitmap(wx.Bitmap(init_emoji),
                            UNICODE_EMOJI[STRING_UNICODE[emoji_string]])

        static_bmp = wx.StaticBitmap()
        static_bmp.Create(self, -1, wx.Bitmap(init_emoji))

        self.emoji_bmps_sizer.Add(static_bmp)
        self.added_emojis[UNICODE_EMOJI[STRING_UNICODE[emoji_string]]] = emoji

我的问题是,当将StaticBitmap添加到sizer时,它会产生加载效果,并在父窗口中一个接一个地快速显示图像。之后,它们被加载到sizer中。

有没有一种方法可以简单地将多个图像添加到面板中,但避免静态位图?这种加载效应会在执行过程中造成很大的延迟,因此静态bmps不是一种选择。

我也研究过wx.grid.Grid,但这似乎使事情变得更加复杂。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2018-10-24 17:09:58

我们在这里谈论的是多少张图片?保存这些图像的文件有多大?如果你有很多很大的图像,你几乎无能为力,因为系统需要时间来加载位图并将它们排列在网格中。

你看过wx.lib.agw中的ThumbnailCtrl吗?它可能会给你一些关于如何加速加载和显示图像的指针。

最后,如果你有很多(非常多)的图像,不要使用wx.StaticBitmap:特别是在Windows上,操作系统很容易耗尽GDI对象并使你的系统崩溃。

安德里亚。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52950574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档