关于canvas问题,希望大家帮忙看下
我想在每个LABEL里面根据数的不同显示不同的图片,但是我把CANVAS放在函数里面怎么就显示不出来图片了?望高手帮我看看,谢谢了~
# -*- coding:utf-8 -*-from Tkinter import * # 导入Tkinter模块from PIL import Image,ImageTkapp = Tk()app.geometry('580x320+300+300')def a(): Label(app,width=3,height=8).grid(row=0,column=0) lb1=Label(app,text='1',width=15,height=8,bg='yellow').grid(row = 0,column=1) cv1=Canvas(lb1,bg='white',width=90,height=100) img1=PhotoImage(file='13.gif') cv1.create_image((45,50),image=img1) cv1.grid(row=0,column=1) lb2=Label(app,width=3,height=8).grid(row=0,column=2) lb3=Label(app,text='2',width=15,height=8,bg='yellow').grid(row=0,column=3) cv2=Canvas(lb3,width=90,height=100) img2=PhotoImage(file='1.gif') cv2.create_image((45,50),image=img2) cv2.grid(row=0,column=3)a()app.mainloop()
# -*- coding:utf-8 -*-from Tkinter import * # 导入Tkinter模块from PIL import Image,ImageTkapp = Tk()app.geometry('580x320+300+300')def a(): Label(app,width=3,height=8).grid(row=0,column=0) lb1=Label(app,text='1',width=15,height=8,bg='yellow').grid(row = 0,column=1) cv1=Canvas(lb1,bg='white',width=90,height=100) img1=PhotoImage(file='13.gif') cv1.create_image((45,50),image=img1) cv1.grid(row=0,column=1) lb2=Label(app,width=3,height=8).grid(row=0,column=2) lb3=Label(app,text='2',width=15,height=8,bg='yellow').grid(row=0,column=3) cv2=Canvas(lb3,width=90,height=100) img2=PhotoImage(file='1.gif') cv2.create_image((45,50),image=img2) cv2.grid(row=0,column=3) return img1, img2images = a()app.mainloop()
[解决办法]
貌似你要自己保持图片对象的引用,简单把img1,img2移到函数外...
...
img1=PhotoImage(file='13.gif')
img2=PhotoImage(file='1.gif')
def a():
...