NameError:name' PhotoImage'没有定义,不知道如何添加图像

时间:2015-03-12 15:44:21

标签: python tkinter

我试图在窗口中添加背景图片,但我不能。我几乎尝试了所有我认识的方式......

class main:
    def __init__(self):
        global lol
        self.rip = tk.Tk()
        self.f2 = tk.Frame(self.rip)
        self.f2.grid(column=0, row=0, sticky=("nwes"))
        self.f2.columnconfigure(0, weight=1)
        self.f2.rowconfigure(0, weight=1)
        self.c1=tk.Label(self.f2, text="feet to meter or meter to feet?")
        self.c1.grid(row=0, column=0)
        self.c2=tk.Label(self.f2, text='type "ft" for feet to meter, type "m" for meter to feet')
        self.c2.grid(row=1, column=0)
        lol = tk.StringVar()
        self.choice = tk.Entry(self.f2, width=7, textvariable=lol)
        self.choice.grid(row=2, column=0)
        self.b1=tk.Button(self.f2, text="Confirm", command=choose)
        self.b1.grid(row=3, column=0)
        self.bg = PhotoImage(file="bgmain.gif")
        tk.Label(self,image=self.bg).pack()
        self.pack(side="top")

错误消息说:
NameError: name 'PhotoImage' is not defined
怎么不能定义PhotoImage ???

3 个答案:

答案 0 :(得分:2)

PhotoImage类是Tkinter模块的一部分,就像您调用的所有其他Tkinter类一样(LabelStringVarButton等)。您尚未将PhotoImage加载到全局命名空间中,因此您无法使用PhotoImage轻松访问它。请改为tk.PhotoImage

self.bg = tk.PhotoImage(file="bgmain.gif")
#         ^^^

答案 1 :(得分:0)

PhotoImage不在您的全局命名空间中。或者使用tkinter.PhotoImage访问它,您可以使用以下命令将PhotoImage导入全局命名空间:

from tkinter import PhotoImage

答案 2 :(得分:0)

我想将图像添加到我的应用程序的背景中! 我该怎么办?

类主页: def init (自己): self.homePageWindow = tkinter.Tk() self.homePageWindow.wm_title(“ T”) self.homePageWindow.iconbitmap(r'20.ico') self.homePageWindow.geometry(“ 540x540 + 0 + 0”) self.homePageWindow.configure(background ='灰色')

windows

homePage = HomePage()