我有一个wx.ListCtrl在报告模式,我使用一个图像列表显示图标,是50x50像素与SetItemColumnImage。现在的问题是,我在图标右边的列中显示的文本不到50像素,而高于文本的部分图标被切断。
有没有一种方法可以告诉ListCtrl将行高调整为图标的高度?最后的避难所是更改文本的字体大小,但是应该有更好的方法。
更新:
以下是我的一些代码:
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标志时,图像是完全可见的,但它们都显示在一行中,并且名称不再可见。
发布于 2012-06-29 13:35:14
由于图像是50x50,我认为它们不再是“小”的了。尝试使用wx.IMAGE_LIST_NORMAL而不是wx.IMAGE_LIST_SMALL。我找不到手动设置行高度的任何信息,所以我猜这是不可能的。但是,我确实找到了一个关于这个主题的错误报告,它是在wx2.9中解决的。你用2.9吗?
或者,您可以使用纯Python的UltimateListCtrl,如果它没有这种能力,您可能会很快得到修补,因为作者非常响应。
https://stackoverflow.com/questions/11253671
复制相似问题