我遇到了这个问题,并尝试了几乎所有内容。我想要一列包含图片,一列包含字符串。我可以得到字符串,但不能得到图像。

这是我所拥有的:

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()


希望能有所帮助。

07-28 06:52