[英]Multiple Images in a Tkinter canvas
我对此代码有疑问。 实际上,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()
我能够解决我的问题。
万一有其他人在寻找解决方案。
在gif1和gif2前面添加了self,例如self.gif1和self.gif2。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.