好的学校项目
此代码片段的目标是在20秒内显示450x450 gif
输出只显示gif的一部分
photo = tkinter.PhotoImage(file = './Images/img1.gif')
root.geometry("450x450")
root.update()
img = canvas.create_image(225,225, image=photo)
root.after(20000, lambda: canvas.delete(img))
root.mainloop()
据我所知,几何定义窗口尺寸,img中的坐标定义中心位置。
目前的结果是 http://i.stack.imgur.com/PSCce.png
期望的结果是 http://imgur.com/zeDMacO
答案 0 :(得分:0)
您可以将图片锚定到“西北”地区。并将坐标设置为0,0,或者像furas说的那样#34;将画布扩展到完整窗口"。例如,使用此代码,您应该能够完整显示:
from tkinter import *
root = Tk()
root.geometry('300x300')
photo = PhotoImage(file = './Images/img1.gif')
root.geometry("450x450")
root.update()
canvas = Canvas(root)
canvas.pack(expand=YES, fill=BOTH)
img = canvas.create_image(0,0, anchor="nw", image=photo)
root.after(20000, lambda: canvas.delete(img))
root.mainloop()
答案 1 :(得分:0)
将画布展开到完整窗口。
import Tkinter as tkinter
root = tkinter.Tk()
canvas = tkinter.Canvas(root)
canvas.pack(fill=tkinter.BOTH, expand=1) # expand
photo = tkinter.PhotoImage(file = 'img1.gif')
root.geometry("450x450")
root.update()
img = canvas.create_image(225,225, image=photo)
#root.after(20000, lambda: canvas.delete(img))
root.mainloop()