Python Tkinter画布中的多个图像

Python Tkinter画布中的多个图像,python,image,tkinter,tkinter-canvas,Python,Image,Tkinter,Tkinter Canvas,我对这个代码有意见。 事实上 1.使用url下载图像 2.将这些图像保存到服务器中 3.在画布中显示它们 我遇到的问题是,它只显示列表中的最后一个图像(在本例中是来自url2的img2),而不是第一个图像,尽管我确实看到画布中为第一个图像添加了一个空格 任何人都知道我在这里错过了什么。我感谢你的帮助 是否有其他方法可以获取图像并在画布中显示,而无需将其保存到本地。 class open_child_window: def init(self, master): self

我对这个代码有意见。 事实上 1.使用url下载图像 2.将这些图像保存到服务器中 3.在画布中显示它们

我遇到的问题是,它只显示列表中的最后一个图像(在本例中是来自url2的img2),而不是第一个图像,尽管我确实看到画布中为第一个图像添加了一个空格

任何人都知道我在这里错过了什么。我感谢你的帮助

是否有其他方法可以获取图像并在画布中显示,而无需将其保存到本地。

class open_child_window:
    def init(self, master):
        self.master = master
        master.title("Img")

url1 ="http:img1" url2 ="http:img2" vscrollbar = Tk.Scrollbar(self.master,orient=VERTICAL) hscrollbar=Tk.Scrollbar(self.master,orient=HORIZONTAL) self.canvas= Tk.Canvas(self.master,background = "White",yscrollcommand=vscrollbar.set,xscrollcommand=hscrollbar.set) self.frame = Tk.Frame(self.canvas) vscrollbar.config(command=self.canvas.yview) vscrollbar.pack(side=Tk.RIGHT, fill=Tk.Y) hscrollbar.pack(side=Tk.BOTTOM,fill=Tk.X) hscrollbar.config(command=self.canvas.xview) self.canvas.create_window(0,0,window=self.frame, anchor='nw') self.list_images = [] contents = urllib.request.urlopen(ur1l) plt.imshow(plt.imread(contents)) file_name = "./img1.png" plt.savefig(file_name, format='png', dpi=180) gif1 = PhotoImage(file = file_name) self.canvas.image_names = gif1 self.canvas.create_image(50, 10, image = gif1, anchor = NW) contents = urllib.request.urlopen(url2) plt.imshow(plt.imread(contents)) file_name = "./img2.png" plt.savefig(file_name, format='png', dpi=180) gif2 = PhotoImage(file = file_name) self.canvas.image_names = gif2 self.canvas.create_image(600, 700, image = gif2, anchor = NW) self.master.update() self.canvas.config(scrollregion=self.canvas.bbox("all")) self.canvas.pack(side="top",fill='both',expand=True) self.frame.pack()

类打开子窗口:
definit(自身、主控):
self.master=master
硕士头衔(“Img”)

url1=“http:img1” url2=“http:img2” vscrollbar=Tk.Scrollbar(self.master,orient=VERTICAL) hscrollbar=Tk.Scrollbar(self.master,orient=HORIZONTAL) self.canvas=Tk.canvas(self.master,background=“White”,yscrollcommand=vscrollbar.set,xscrollcommand=hscrollbar.set) self.frame=Tk.frame(self.canvas) vscrollbar.config(命令=self.canvas.yview) vscrollbar.pack(侧面=右侧,填充=右侧) hscrollbar.pack(侧面=底部,填充=底部) hscrollbar.config(命令=self.canvas.xview) self.canvas.create_窗口(0,0,window=self.frame,anchor='nw') self.list_图像=[] contents=urllib.request.urlopen(ur1l) plt.imshow(plt.imread(目录)) file_name=“./img1.png” plt.savefig(文件名,格式='png',dpi=180) gif1=照片图像(文件=文件名) self.canvas.image_name=gif1 self.canvas.create_image(50,10,image=gif1,anchor=NW) contents=urllib.request.urlopen(url2) plt.imshow(plt.imread(目录)) file_name=“./img2.png” plt.savefig(文件名,格式='png',dpi=180) gif2=照片图像(文件=文件名) self.canvas.image_name=gif2 self.canvas.create_image(600700,image=gif2,anchor=NW) self.master.update() self.canvas.config(scrollregion=self.canvas.bbox(“全部”)) self.canvas.pack(side=“top”、fill=“both”、expand=True) self.frame.pack()
我能够解决我的问题

如果有人在寻找解决方案

在gif1和gif2前面添加self,如self.gif1和self.gif2