PhotoImage - 省略选项名称

时间:2015-01-18 11:10:35

标签: python tkinter

看到这个后,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手册页但是仍然无法找到它为什么会这样。

另外,如果这两个是重复的,请告诉我,我将删除/关闭此投票。

1 个答案:

答案 0 :(得分:2)

在python中指定带有命名参数的函数时,这些命名参数将按特定顺序显示。如果在定义这些参数时未提供名称,则它们将按参数出现在函数定义中的顺序应用。

对于PhotoImage,第一个关键字参数用于图像的名称,而不是文件的路径。因此,PhotoImage("ban.gif")与执行PhotoImage(name="ban.gif")相同。它并没有抛出错误,因为" ban.gif"是一个有效的名称,并且有一些用例要在不引用文件的情况下创建图像。