Oct-04-2019, 09:16 PM
I am following a tutorial on YouTube. That person is using Python 3.7.2 and I am using 3.7.4. I am not getting the list box correctly portrayed and the buttons at the bottom of the GUI is not showing at all. I have went over the tutorial several times and cannot find where the problem lies. Here is the coding I have so far. I am getting a Listbox error but I don't see where in the tutorial this was defined. Thank you.
Error:Traceback (most recent call last):
File "C:\Users\pe\Documents\Python 3 Film Database\Python 3 Film Database\film.py", line 121, in <module>
application = Film(root)
File "C:\Users\pe\Documents\Python 3 Film Database\Python 3 Film Database\film.py", line 94, in __init__
filmlist = ListBox(DataFrameRIGHT, width=41, height=16, font=('arial', 12, 'bold'), yscrollcommand=scrollbar.set)
NameError: name 'ListBox' is not defined
#Frontend from tkinter import* import tkinter.messagebox import filmDatabase_BackEnd class Film: def __init__(self,root): self.root =root self.root.title("Classic Film Collection") self.root.geometry("1350x750+0+0") self.root.config(bg="cadet blue") Title = StringVar() Year = StringVar() Genre = StringVar() Actors = StringVar() Directors = StringVar() Summary = StringVar() Rating = StringVar() Length = StringVar() #=====================================Functions================================= def iExit(): iExit = tkinter.messagebox.askyesno("Classic Film Collection", "Confirm if you want to exit") if iExit > 0: root.destroy() return def clearData(): self.textFilm_Num.delete(0,END) self.textactors.delete(0,END) self.textdirectors.delete(0,END) self.textgenre.delete(0,END) self.textlength.delete(0,END) self.textsummary.delete(0,END) self.textrating.delete(0,END) self.texttitle.delete(0,END) self.textyear.delete(0,END) #=====================================Frames===================================== MainFrame = Frame(self.root, bg="cadet blue") MainFrame.grid() TitFrame = Frame(MainFrame, bd=2, padx=54,pady=8, bg="Ghost White", relief=RIDGE) TitFrame.pack(side=TOP) self.lblTit = Label(TitFrame, font=('arial', 47,'bold'), text="Classic Film Collection",bg="Ghost White") self.lblTit.grid() ButtonFrame =Frame(MainFrame, bd=2, width=1350, height=70, padx=18,pady=10, bg="Ghost White", relief=RIDGE) ButtonFrame.pack(side=BOTTOM) DataFrame =Frame(MainFrame, bd=1, width=1300, height=400, padx=20, pady=20, relief=RIDGE, bg="Cadet Blue") DataFrame.pack(side=BOTTOM) DataFrameLEFT =LabelFrame(DataFrame, bd=1, width=1000, height=600, padx=20, relief=RIDGE ,bg="Ghost White", font=('arial', 20, 'bold'), text="Film Information\n") DataFrameLEFT.pack(side=LEFT) DataFrameRIGHT =LabelFrame(DataFrame, bd=1, width=450, height=300, padx=31, pady=3, relief=RIDGE, bg="Ghost White", font=('arial', 20, 'bold'), text="Film Details\n") DataFrameRIGHT.pack(side=RIGHT) #========================================Labels and Entry Widget=============================== self.lblTitle = Label(DataFrameLEFT, font=('arial', 20,'bold'),text="Title:", padx=2, pady=2, bg="Ghost White") self.lblTitle.grid(row=0, column=0, sticky=W) self.txtTitle = Entry(DataFrameLEFT, font=('arial', 20,'bold'),textvariable=Title, width=39) self.txtTitle.grid(row=0, column=1) self.lblyr = Label(DataFrameLEFT, font=('arial', 20, 'bold'),text="Year:", padx=2, pady=2, bg="Ghost White") self.lblyr.grid(row=1, column=0, sticky=W) self.txtyr = Entry(DataFrameLEFT, font=('arial', 20, 'bold'),textvariable=Year, width=39) self.txtyr.grid(row=1, column=1) self.lblact = Label(DataFrameLEFT, font=('arial', 20, 'bold'),text="Actors:", padx=2, pady=2, bg="Ghost White") self.lblact.grid(row=2, column=0, sticky=W) self.txtact = Entry(DataFrameLEFT, font=('arial', 20, 'bold'),textvariable=Actors, width=39) self.txtact.grid(row=2, column=1) self.lbldir = Label(DataFrameLEFT, font=('arial', 20, 'bold'),text="Directors:", padx=2, pady=2, bg="Ghost White") self.lbldir.grid(row=3, column=0, sticky=W) self.txtdir = Entry(DataFrameLEFT, font=('arial', 20, 'bold'),textvariable=Directors, width=39) self.txtdir.grid(row=3, column=1) self.lblgen = Label(DataFrameLEFT, font=('arial', 20, 'bold'),text="Genre:", padx=2, pady=2, bg="Ghost White") self.lblgen.grid(row=4, column=0, sticky=W) self.txtgen = Entry(DataFrameLEFT, font=('arial', 20, 'bold'),textvariable=Genre, width=39) self.txtgen.grid(row=4, column=1) self.lblsum = Label(DataFrameLEFT, font=('arial', 20, 'bold'),text="Summary:", padx=2, pady=2, bg="Ghost White") self.lblsum.grid(row=5, column=0, sticky=W) self.txtsum = Entry(DataFrameLEFT, font=('arial', 20, 'bold'),textvariable=Summary, width=39) self.txtsum.grid(row=5, column=1) self.lblrat = Label(DataFrameLEFT, font=('arial', 20, 'bold'),text="Rating:", padx=2, pady=2, bg="Ghost White") self.lblrat.grid(row=6, column=0, sticky=W) self.txtrat = Entry(DataFrameLEFT, font=('arial', 20, 'bold'),textvariable=Rating, width=39) self.txtrat.grid(row=6, column=1) #=================================================ListBox & ScrollBar Widget======================================================= scrollbar = Scrollbar(DataFrameRIGHT) scrollbar.grid(row=0, column=1, sticky='ns') filmlist = ListBox(DataFrameRIGHT, width=41, height=16, font=('arial', 12, 'bold'), yscrollcommand=scrollbar.set) filmlist.grid(row=0, column=0, padx=8) scrollbar.config(command = filmlist.yview) #================================================Button Widget ====================================================================== self.btnAddData = Button(ButtonFrame, text="Add New", font=('arial', 20, 'bold'),height=1, width=10, bd=4) self.btnAddData.grid(row=0, column=0) self.btnDisplayData = Button(ButtonFrame, text="Display", font=('arial', 20, 'bold'),height=1, width=10, bd=4) self.btnDisplayData.grid(row=0, column=1) self.btnClearData = Button(ButtonFrame, text="Clear", font=('arial', 20, 'bold'),height=1, width=10, bd=4) self.btnClearData.grid(row=0, column=2) self.btnDeleteData = Button(ButtonFrame, text="Delete", font=('arial', 20, 'bold'),height=1, width=10, bd=4) self.btnDeleteData.grid(row=0, column=3) self.btnSearchData = Button(ButtonFrame, text="Search", font=('arial', 20, 'bold'),height=1, width=10, bd=4) self.btnSearchData.grid(row=0, column=4) self.btnUpdateData = Button(ButtonFrame, text="Update", font=('arial', 20, 'bold'),height=1, width=10, bd=4) self.btnUpdateData.grid(row=0, column=5) self.btnExit = Button(ButtonFrame, text="Exit", font=('arial', 20, 'bold'),height=1, width=10, bd=4, command=iExit) self.btnExit.grid(row=0, column=6) if __name__=='__main__': root = Tk() application = Film(root) root.mainloop()