Reputation: 25
I'm trying to add a background image to the window but I can't. I tried almost every way I know...
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")
The error message says:
NameError: name 'PhotoImage' is not defined
.
How can PhotoImage
not be defined???
Upvotes: 0
Views: 16828
Reputation: 1
I want to add an image to the background of my app! How do I do that?
class HomePage: def init(self): 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='Gray')
tkinter.Label(self.homePageWindow,font=('Titr',20),text = "t",bd=1,bg='Gray',fg='Yellow').grid(pady = 10,padx=10, column = 4, row = 1,sticky='e')
tkinter.Button(self.homePageWindow, width = 10,height=2, font=('Nazanin',12,'bold'), text = "Insert",bd=3,bg='brown',fg='yellow', command = self.Insert).grid(pady = 14,padx=14,column =4, row = 2)
tkinter.Button(self.homePageWindow, width = 10,height=2,font=('Nazanin',12,'bold'), text = "Update",bd=3,bg='brown',fg='yellow', command = self.Update).grid(pady = 10,padx=14, column = 5, row = 3)
tkinter.Button(self.homePageWindow, width = 10,height=2, font=('Nazanin',12,'bold'), text = "Search",bd=3,bg='brown',fg='yellow', command = self.Search).grid(pady = 10,padx=7, column = 3, row = 5)
tkinter.Button(self.homePageWindow, width = 10,height=2,font=('Nazanin',12,'bold'), text = "حذف",bd=3,bg='brown',fg='yellow', command = self.Delete).grid(pady = 10,padx=7, column = 3, row =3)
tkinter.Button(self.homePageWindow, width = 10,height=2,font=('Nazanin',12,'bold'), text = "Display",bd=3,bg='brown',fg='yellow', command = self.Display).grid(pady = 12,padx=7, column = 4, row = 8)
tkinter.Button(self.homePageWindow, width = 10,height=2,font=('Nazanin',12,'bold'), text = "Exit",bd=3,bg='brown',fg='yellow', command = self.homePageWindow.destroy).grid(pady = 10,padx=7, column = 5, row = 5)
self.homePageWindow.mainloop()
def Insert(self):
self.insertWindow = InsertWindow()
def Update(self):
self.updateIDWindow = tkinter.Tk()
self.updateIDWindow.wm_title("Update")
self.id = tkinter.StringVar()
tkinter.Label(self.updateIDWindow, text = "id ?", width = 50).grid(pady = 20, row = 1)
self.idEntry = tkinter.Entry(self.updateIDWindow, width = 5, textvariable = self.id)
self.idEntry.grid(pady = 10, row = 2)
tkinter.Button(self.updateIDWindow, width = 20, text = "update",bd=3,bg='brown',fg='yellow', command = self.updateID).grid(pady = 10, row = 3)
self.updateIDWindow.mainloop()
def updateID(self):
self.updateWindow = UpdateWindow(self.idEntry.get())
self.updateIDWindow.destroy()
def Search(self):
self.searchWindow = SearchDeleteWindow("Search")
def Delete(self):
self.deleteWindow = SearchDeleteWindow("Delete")
def Display(self):
self.database = Database()
self.data = self.database.Display()
self.displayWindow = DatabaseView(self.data)
homePage = HomePage()
Upvotes: 0
Reputation: 3386
PhotoImage
is not in your global namespace. Alternatively to accessing it with tkinter.PhotoImage
, you can import PhotoImage
into the global namespace with:
from tkinter import PhotoImage
Upvotes: 0
Reputation: 14098
The PhotoImage
class is part of the Tkinter module, just like all the other Tkinter classes you're calling (Label
, StringVar
, Button
, etc). You haven't loaded PhotoImage
into the global namespace, so you can't access it simply with PhotoImage
. Try tk.PhotoImage
instead.
self.bg = tk.PhotoImage(file="bgmain.gif")
# ^^^
Upvotes: 4