我有一个wx.ListCtrl在报告模式下,我使用一个图像列表来显示带有SetItemColumnImage的50x50像素的图标。现在的问题是,我在图标右侧的列中显示的文本的高度小于50像素,并且高于文本的图标部分被切掉。在
有没有办法告诉listcrlt将行高调整为图标的高度?最后一个办法是改变文本的字体大小,但应该有更好的方法。在
以下是我的一些代码:
self.list = util.ListCtrl(nb, style=wx.LC_REPORT|
wx.LC_SINGLE_SEL|wx.LC_NO_HEADER|wx.LC_ALIGN_LEFT)
self.list.InsertColumn(0, 'Avatar', width=-1)
self.list.InsertColumn(1, 'Name', width=-1)
self.list.SetColumnWidth(0, 50)
self.imagelist = wx.ImageList(50, 50, 255, 20)
self.list.SetImageList(self.imagelist, wx.IMAGE_LIST_SMALL)
i = 0
for user in self.users:
self.list.append(['', user['name']])
if user['avatar']:
bitmap = wx.BitmapFromImage(user['avatar'])
imageidx = self.imagelist.Add(bitmap)
self.list.SetItemColumnImage(i, 0, imageidx)
i += 1
当我删除LC_REPORT标志时,图像是完全可见的,但它们都显示在一行中,名称不再可见。在
因为图像是50x50,我认为它们不再是“小”了。尝试使用wx.IMAGE_LIST_正常而不是wx.IMAGE_LIST_小. 我找不到任何关于手动设置行高的信息,所以我想这是不可能的。但是,我确实找到了一个关于这个主题的bug report,它表明它在wx2.9中得到了解决。你在用2.9吗?在
或者,您可以使用ultimatelistcrl,它是纯Python,如果它没有这个功能,您可能可以很快地修补它,因为作者的响应非常快。在
我喝了几杯咖啡想弄明白。在
号召图像列表。添加应在之前列表控制追加(或ListCtrl.InsertItem)为了使ListCtrl根据ImageList中图像的高度更改其行的高度。在
所以不是
你应该买这种东西
^{pr2}$这看起来很难看,除非你实现了一个默认的化身:
相关问题 更多 >
编程相关推荐