wxpython 类中想读取10张图像到列表,可是列表中图像命名格式不对,导致读取图像失败,请求各位指教,谢谢!
import wx
class MyFrame(wx.Frame):
eve = 0
i=1
def __init__(self):
super().__init__(parent=None,title="vbox",size=(500,400),pos=(100,100)) #继承wx.Frame类
self.Center()
self.panel = wx.Panel(parent=self) #面板
vbox = wx.BoxSizer(wx.VERTICAL)
self.bmps=[wx.Bitmap(str(i)+'.png',wx.BITMAP_TYPE_PNG)] #这行代码出错了
self.image=wx.StaticBitmap(self.panel,-1,self.bmps[0])
b1=wx.Button(self.panel,id=1,label='变换图片')
self.Bind(wx.EVT_BUTTON,self.on_click,b1)
vbox.Add(b1,1,wx.CENTER)
vbox.Add(self.image,5,wx.CENTER)
self.panel.SetSizer(vbox)
class App(wx.App):
def OnInit(self): #进入
frame = MyFrame()
frame.Show()
return True
def OnExit(self): #退出
print("tuichu")
return 0
if __name__ == '__main__':
app=App()
app.MainLoop()
该回答引用ChatGPT
在这个代码中,你尝试读取文件名为1.png, 2.png, ...10.png的图像文件,并将它们存储到self.bmps列表中。但是,您在这里遇到了一个问题,即图像的命名格式不正确。
如果您的图像文件命名为“01.png”,“02.png”,直到“10.png”,您可以使用以下代码将所有图像文件读入self.bmps列表中:
self.bmps = [wx.Bitmap(f"{i:02d}.png", wx.BITMAP_TYPE_PNG) for i in range(1, 11)]
如果您的图像文件命名为“image1.png”,“image2.png”,直到“image10.png”,您可以使用以下代码将所有图像文件读入self.bmps列表中:
self.bmps = [wx.Bitmap(f"image{i}.png", wx.BITMAP_TYPE_PNG) for i in range(1, 11)]
在这两个示例中,您可以使用字符串格式设置来正确地格式化文件名。我希望这可以帮助您解决您的问题。