文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>关于图像列表的问题

关于图像列表的问题

时间:2007-05-13  来源:thinkc

    转载自http://blog.donews.com/limodou/       今天在开发NewEdit功能时,我使用了一个 wxListCtrl,它要用到图形,我提供了一个有两个图形的ImageList,用它来显示不同的状态.基本代码如下:       imagel = wx.ImageList(16, 16)
    self.uncheck_state = imagel.Add(wx.Image('images/uncheck.gif').ConvertToBitmap())
    self.check_state = imagel.Add(wx.Image('images/check.gif').ConvertToBitmap())

    box = wx.BoxSizer(wx.VERTICAL)
    self.list = wx.ListCtrl(self, -1, style = wx.LC_REPORT | wx.SUNKEN_BORDER)
    self.list.SetImageList(imagel, wx.IMAGE_LIST_SMALL)
        插入行数据的部分省略了.我发现图形根本显示不出来.试来试去,我终于想起来了,以前也出现过这个问题,其原因就是因为这里的imagel(imagelist的对象)是一个局部对象,在真正显示图形时,这个对象已经被释放掉了.尽管SetImageList方法对它有一个引用,但从现象上看,它的确是被删除了,所以图形显示不出来.既然知道了问题的所在,解决就非常容易,将其保存为对象的属性即可(即不作为局部变量).改变后的代码为:       self.imagel = wx.ImageList(16, 16)
    self.uncheck_state = self.imagel.Add(wx.Image('images/uncheck.gif').ConvertToBitmap())
    self.check_state = self.imagel.Add(wx.Image('images/check.gif').ConvertToBitmap())

    box = wx.BoxSizer(wx.VERTICAL)
    self.list = wx.ListCtrl(self, -1, style = wx.LC_REPORT | wx.SUNKEN_BORDER)
    self.list.SetImageList(self.imagel, wx.IMAGE_LIST_SMALL)
        也就是在所有imagel前加上了self,就行了.
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载