Несколько изображений на холсте Tkinter

У меня проблема с этим кодом. На самом деле, 1. Загрузите изображения, используя URL-адрес. 2. Сохраните эти изображения на сервере. 3. Отобразите их на холсте.

Проблема, с которой я сталкиваюсь, заключается в том, что он показывает только последнее изображение (в данном случае img2 из url2) из ​​списка, а не первое, хотя я вижу, что на холсте было добавлено пустое место для первого изображения.

Кто-нибудь знает, чего мне здесь не хватает. Я ценю вашу помощь.

Are there any other ways to get the images and showing in canvas, without saving them in to the local.


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

person vas    schedule 17.05.2018    source источник


Ответы (1)


Я смог решить свою проблему.

на случай, если кто-то еще ищет решение.

Добавлено self перед gif1 и gif2, как self.gif1 и self.gif2.

person vas    schedule 18.05.2018