名称错误:未定义名称“PhotoImage”,不知道如何添加imag

2024-05-19 21:56:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在窗口中添加一个背景图片,但我做不到。我几乎用了我知道的所有方法。。。

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???


Tags: totextselfcolumnlabeltkgridrow
2条回答

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

from tkinter import PhotoImage

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

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

相关问题 更多 >