微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

滚动窗格中有大量图像的性能问题

如何解决滚动窗格中有大量图像的性能问题

我想创建一个包含数百张图像的滚动窗格。我的代码运行正常,直到 200 张图像,但对于大量图像,开始变得非常缓慢。在 Core i9 上,这段代码(只是我实际操作的精简版)需要将近 20 秒才能显示出来。知道我可以如何改进吗?

import wx
import wx.lib.scrolledpanel as scrolled

class ImgPanel(scrolled.ScrolledPanel):
    def __init__(self,parent):
        super(ImgPanel,self).__init__(parent,style = wx.SUNKEN_BORDER)


        self.imgSizer = wx.BoxSizer(wx.VERTICAL)   
        for i in range(500):
            image = wx.Bitmap('chrome.png')
            bitmap=wx.StaticBitmap(parent=self)
            bitmap.SetBitmap(image)
            self.imgSizer.Add(bitmap,1,wx.EXPAND)
        self.SetSizer(self.imgSizer)

        self.SetAutoLayout(1)
        self.SetupScrolling()
        self.IsRectReady = False
        self.newRectPara=[0,0]

class  MyFrame(wx.Frame):
    def __init__(self,parent,title,width,height):
        super(MyFrame,title=title,size=(width,height))

        self.imgPanel = ImgPanel(self)
        self.frameSizer = wx.BoxSizer(wx.HORIZONTAL)        
        self.frameSizer.Add(self.imgPanel,wx.EXPAND)        
        self.SetAutoLayout(True)
        self.SetSizer(self.frameSizer)
        self.Layout()      

        self.Centre()
        self.Show(True)        
def main():
    app = wx.App()
    frame = MyFrame(None,"test",1200,800)
    app.SetTopWindow(frame) 
    app.MainLoop()

if "__main__" == __name__ :
    main()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。