看到这个后,PhotoImage not showing up the image associated with it我想知道为什么省略选项类型不会抛出错误而不是只是不显示图像?
此代码不会显示图像而不会抛出任何错误
import tkinter as tk
root = tk.Tk()
image1 = tk.PhotoImage("ban.gif")
tk.Label(root,image=image1).pack()
tk.Label(root, text="some string here").pack()
root.mainloop()
但这个工作正常
import tkinter as tk
root = tk.Tk()
image1 = tk.PhotoImage(file="ban.gif")
tk.Label(root,image=image1).pack()
tk.Label(root, text="some string here").pack()
root.mainloop()
在effbot上它没有说任何关于它的事情所以我检查了creating photos的tcl手册页但是仍然无法找到它为什么会这样。
另外,如果这两个是重复的,请告诉我,我将删除/关闭此投票。
答案 0 :(得分:2)
在python中指定带有命名参数的函数时,这些命名参数将按特定顺序显示。如果在定义这些参数时未提供名称,则它们将按参数出现在函数定义中的顺序应用。
对于PhotoImage,第一个关键字参数用于图像的名称,而不是文件的路径。因此,PhotoImage("ban.gif")
与执行PhotoImage(name="ban.gif")
相同。它并没有抛出错误,因为" ban.gif"是一个有效的名称,并且有一些用例要在不引用文件的情况下创建图像。