我无法启动我的Python程序。我有一个问题,我无法打开.gif文件,而且我不知道怎么做!
我不断收到一条错误消息:
"RuntimeError: Too early to create image"
我已经将gif文件和代码移到了相同的项目文件中,并且尝试在网上查找,但是每个人都使用不同的软件包,而我只是找不到解决方法。我还在pycharm上打开了gif。
这是我的代码:
import random
from tkinter import *
sign = random.randint(0, 1)
if (sign == 1):
photo = PhotoImage(file="X.gif")
else:
photo = PhotoImage(file="O.gif")
我的总体目标是显示一个像井字游戏一样的图像,并随机放置X和O,并且不一定要有连续3个特定的顺序。这是作业问题:
显示包含九个标签的框架。标签可以显示X的图像图标或O的图像图标,如图12.27c所示。显示的内容是随机决定的。
使用
Math.random()
方法生成整数0或1,它对应于显示X或O图像图标。这些图像位于文件x.gif和o.gif中。
答案 0 :(得分:1)
在创建主窗口之前,我从代码中看到您正在使用PhotoImage
,这给您一个Runtime error
,并且在错误中明确指出“创建图像为时过早“ 表示如果没有活动的Tk
窗口,则无法创建图像。
某些人之所以喜欢使用其他模块,是因为它给您更大的灵活性来调整大小,调整形状,反转以及更多。 (顺便说一下,它可以 Pillow 模块from PIL import Image, ImageTk
How to use PIL in Tkinter)。
if-else
来随机化“ O”和“ X”图像。import random
from tkinter import *
sign = random.choice( ["X.gif", "O.gif"] )
print(sign,"photo has been selected")
root = Tk()
Photo = PhotoImage(file=sign)
display_photo = Label(root, image=Photo)
display_photo.pack()
mainloop()