Python 如何使用tkinter打开.gif文件而不出现错误;“创建图像太早”吗;?
我无法启动Python程序。我有一个问题,我不能打开一个.gif文件,我也不知道如何打开 我一直收到一条很长的错误消息:Python 如何使用tkinter打开.gif文件而不出现错误;“创建图像太早”吗;?,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,我无法启动Python程序。我有一个问题,我不能打开一个.gif文件,我也不知道如何打开 我一直收到一条很长的错误消息: “运行时错误:创建映像太早” 我已经将gif文件移动到与代码相同的项目文件中,我尝试在线查找,但每个人都使用不同的软件包,我就是找不到解决方法。我也在pycharm上打开了GIF 这是我的代码: import random from tkinter import * sign = random.randint(0, 1) if (sign == 1): photo
“运行时错误:创建映像太早”
我已经将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")
我的总体目标是展示一个像完成的tic-tac-toe游戏一样的图像,随机放置X和O,并且不必有任何特定的顺序,比如连续3次。以下是作业问题:
显示包含九个标签的框架。标签可显示X的图像图标或O的图像图标,如图12.27c所示。显示什么是随机决定的
使用Math.random()
方法生成整数0或1,对应于显示X或O图像图标。这些图像位于文件x.gif和o.gif中
我可以从代码中看出,在创建主窗口之前使用的
PhotoImage
会给您带来运行时错误
,错误中明确指出,“创建图像太早”意味着如果没有活动的Tk
窗口,则无法创建图像
之所以有些人喜欢使用其他模块,是因为它为您提供了更大的调整大小、重塑形状、反转等灵活性。(顺便说一句,它可以从PIL导入图像,ImageTk中枕头模块)
现在回到您的代码。
您可以随机选择“O”和“X”图像,而无需使用if-else
我在创建图像之前创建了主窗口
确保您使用的图像位于同一目录中
您提到了两条不同的erorr消息。哪一个是您的问题?要使用PhotoImage
您可能必须首先创建主窗口Tk()
。而创建图像太早
可能意味着您在创建Tk()
之前使用了PhotoImage
,如果出现错误“没有这样的文件或目录”
,请尝试“/full/path/to/image/X.gif”
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()