python小白请教如何获取ImageList的各个图片绑定事件
我想通过ImageList来制作电子相册预览,通过点击ImageList中的图片弹出相应figure来展示它们,但一直不知道怎么让各个事件和各个图片对应起来,还有因为这份代码是在别人的基础上修改的,所以想请教一下有没有不用data字典来给图片做说明又能根据文件夹中图片的个数充分初始化ImageList,这里的代码必须在 for x in range()里手动输入参数来初始化
程序代码:
import wx from PIL import Image import matplotlib.pyplot as plt import os import tkinter import re import pygame data = {0:"Zero",1:"first",2:"second",3:"three",4:"four",5:"five",6:"six",7:"seven",8:"eight",9:"nine",10:"ten",11:"eleven"} #字典 #h = 0 class MyFrame(wx.Frame): def __init__(self,parent=None): #h = 1 super(MyFrame, self).__init__(parent, -1, "带位图的列表", size=(1000, 1000))#super可以调用父类以及父类的方法 il = wx.ImageList(150,300,True) #创建图像列表 for f in os.listdir(r'E:\\photo2'): #h = h + 1 img = wx.Image(r"E:\photo2"+"\\"+f,wx.BITMAP_TYPE_BMP) img.Rescale(150,300) bmp = img.ConvertToBitmap() il.Add(bmp) #s = il.GetBitmap(5) #print(s) self.list = wx.ListCtrl(self,-1,style=wx.LC_ICON|wx.LC_AUTOARRANGE) self.list.AssignImageList(il,wx.IMAGE_LIST_NORMAL) #h = self.list.InsertImageItem() #调用InsertImageStringItem()方法出入列表项,并为图标设置说明字符串 #self.Bind(wx.EVT_LIST_ITEM_SELECTED, plt.show,il[]) for x in range(11): self.list.InsertImageStringItem(x,data[x],x) #self.Bind(wx.EVT_LIST_ITEM_SELECTED, self.courseListSelectFunc, self.list) #self.Bind(wx.EVT_LIST_ITEM_SELECTED,plt.show , self.list) app = wx.App() frame = MyFrame() frame.Show() app.MainLoop() #AssignImageList和InsertImageStringItem去创建位图列表现在程序运行的结果如下:
之前尝试添加过事件绑定不管点击哪个图都只能展示最后一张图,因此请教各位大佬对应绑定事件的办法