Lia*_*ara 6 python tkinter python-imaging-library
我正在尝试创建一个图像库并从该图像库中调用图像tkinter。但是这段代码给了我一个错误:
这是图像库文件img.py:
from tkinter import *
food_0001 = PhotoImage(file='food_0001.gif')
food_0002 = PhotoImage(file='bg.gif')
Run Code Online (Sandbox Code Playgroud)
这是用于打开存储在以下位置的图像的文件img.py:
from tkinter import *
import img
window = Tk()
window.title('image')
canvas = Canvas(window, width = 800, height = 800)
canvas.pack()
canvas.create_image(0,0, anchor=NW, image=food_0001)
window.mainloop()
Run Code Online (Sandbox Code Playgroud)
这是因为PhotoImage()只能在创建后调用Tk()。
建议重写为仅在需要时img.py创建。PhotoImage()以下是执行此操作的示例方法:
from tkinter import *
imagelist = {
'food_0001': ['food_0001.png', None],
'food_0002': ['bg.png', None],
}
def get(name):
if name in imagelist:
if imagelist[name][1] is None:
print('loading image:', name)
imagelist[name][1] = PhotoImage(file=imagelist[name][0])
return imagelist[name][1]
return None
Run Code Online (Sandbox Code Playgroud)
然后修改您的主程序以适应更改:
from tkinter import *
import img
window = Tk()
window.title('image')
canvas = Canvas(window, width=800, height=800)
canvas.pack()
canvas.create_image(0, 0, anchor='nw', image=img.get('food_0001'))
window.mainloop()
Run Code Online (Sandbox Code Playgroud)
当然,还有很多其他方法可以做到这一点,这取决于您的想象力。
| 归档时间: |
|
| 查看次数: |
18357 次 |
| 最近记录: |