WxPython 将列表添加到 Grid Sizer

WxPythonAdd List to Grid Sizer

我有一个图像列表 (wxImg),我想将其添加到 grid sizer。我 不知道如何添加它们。这是我的一段代码。

import wx

class MyPanel(wx.Panel):
    def __init__(self, *args, **kwargs):
        wx.Panel.__init__(self, *args, **kwargs)
        msz = wx.BoxSizer(wx.VERTICAL)
        gs = wx.GridSizer(5, 5, 0, 0)
        self.ic = []
        for i in range(len(wxImg)):
            self.ic.append(wx.StaticBitmap(self, wx.ID_ANY,
                           wx.BitmapFromImage(wxImg[i]),
                           name="Pic" + str(i + 1))
            gs.Add(self.ic[i], 0, wx.ALIGN_LEFT)
            self.ic[i].Bind(wx.EVT_LEFT_DOWN, self.OnClick)
            msz.Add(gs, 0, wx.ALL, 5)
            self.SetSizer(msz)

等等。它总是给我错误。 请帮忙。

谢谢。

您忘记提供它给您的错误类型。可以是任何东西,甚至可以是与你正在做的事情无关的东西,所以请提供错误信息。还有什么 "wxImg" 持有? wx.Images?图片的路径?

这是我做过的类似的事情。我修改了一下。原文为here

image_grid = wx.FlexGridSizer(rows=3, cols=2, vgap=10, hgap=10)
image_list = ['add.jpg', 'subtract.jpg', 'divide.jpg',
                  'multiply.jpg', 'mix.jpg', 'custom.jpg']

    for image in image_list:
        bmp = wx.Image(img_dir.format(image),
                       wx.BITMAP_TYPE_ANY).ConvertToBitmap()
        bitmap = wx.StaticBitmap(self, -1, bmp)

        image_grid.Add(bitmap)