我遇到了这个问题,并尝试了几乎所有内容。我想要一列包含图片,一列包含字符串。我可以得到字符串,但不能得到图像。
这是我所拥有的:
self.browserList=wx.ListCtrl(panel, pos=(20,150), size=(250,100),
style.wx.LC_REPORT|wx.BORDER_SUNKEN)
self.browserList.InsertColumn(0, '', width=50)
self.browserList.InsertColumn(1, 'Browser: ', width=200)
self.list=wx.ImageList(40,40)
self.browserList.SetImageList(self.list, wx.IMAGE_LIST_NORMAL)
images=['Users/Default/Desktop/Project/firefoxlogo.png','Users/Default/Desktop/Project/chromelogo.png']
x=0
for i in images:
img=wx.Image(i, wx.BITMAP_TYPE_ANY)
img=wx.BitmapFromImage(img)
browserimg=self.list.Add(img)
self.browserList.InsertImageItem(x, 0)
self.browserList.InsertImageItem(x, 0, browserimg)
self.browserList.SetStringItem(0, 1, "Mozilla Firefox")
self.browserList.SetStringItem(1, 1, "Google Chrome")
最佳答案
运行您的代码时出现错误。
但是无论如何,我无法解释原因,但也许我认为您可以通过将wx.IMAGE_LIST_NORMAL
更改为wx.IMAGE_LIST_SMALL
来解决此问题。
这是我尝试并为我工作的简单代码。
import wx
class MyFrame(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, id, title,size=(250, 250))
panel = wx.Panel(self, -1)
panel.SetBackgroundColour('white')
self.browserList=wx.ListCtrl(panel, pos=(20,150), size=(250,100),style = wx.LC_REPORT|wx.BORDER_SUNKEN)
self.browserList.InsertColumn(0, '', width=50)
self.browserList.InsertColumn(1, 'Browser: ', width=200)
self.list=wx.ImageList(40,40)
self.browserList.SetImageList(self.list, wx.IMAGE_LIST_SMALL)
images=['mozilla.png','chrome.png']
x=0
for i in images:
img=wx.Image(i, wx.BITMAP_TYPE_ANY)
img=wx.BitmapFromImage(img)
browserimg=self.list.Add(img)
self.browserList.InsertImageItem(x, 0)
self.browserList.InsertImageItem(x, 1)
self.browserList.SetStringItem(0, 1, "Mozilla Firefox")
self.browserList.SetStringItem(1, 1, "Google Chrome")
class MyApp(wx.App):
def OnInit(self):
frame = MyFrame(None, -1, 'frame')
frame.Show(True)
return True
app = MyApp(0)
app.MainLoop()
希望能有所帮助。