0

好的,所以学校项目

这段代码的目标是在 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/zeDMaO

4

2 回答 2

0

您可以将图像锚定到“西北”并将坐标设置为 0,0,或者像 furas 所说的“将画布扩展到整个窗口”。例如使用此代码,您应该能够获得完整的显示:

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()
于 2014-06-10T02:01:14.700 回答
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()

在此处输入图像描述

于 2014-06-10T02:02:31.763 回答