I am trying to add a png image to the first button inside window2 class, but rather it reduces the size of the button with no image appearing. The code does not throw up any errors but yet the png image I am trying to put on the button will not show.
from tkinter import *
import sqlite3 as sq
from PIL import Image,ImageTk
from tkinter import messagebox
from tkinter import ttk
import random
import time
import datetime
def main():
root = Tk()
app = Window1(root)
root.mainloop()
conn = sq.connect("Student_record.db")
c = conn.cursor()
class Window1:
def __init__(self, master):
self.master = master
self.master.title("Student Login System")
self.master.geometry("1350x750+0+0")
self.master.config(bg ='powder blue')
self.frame = Frame(self.master, bg ='powder blue')
self.frame.pack()
self.Username = StringVar()
self.Password = StringVar()
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
self.lblTitle = Label(self.frame, text='Student Login system', font=("arial", 50, "bold"), bg="powder blue")
self.lblTitle.grid(row=0, column=0, columnspan=2, pady=40)
self.Loginframe1 = LabelFrame(self.frame, width=1350, height=600, font=('arial', 20, 'bold'),
relief='ridge', bg='cadet blue', bd=20)
self.Loginframe1.grid(row=1, column=0)
self.Loginframe2 = LabelFrame(self.frame, width=1000, height=600, font=('arial', 20, 'bold'),
relief='ridge', bg='cadet blue', bd=20)
self.Loginframe2.grid(row=2, column=0)
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++Frames for holding buttons,label and entry++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
self.username_label = Label(self.Loginframe1, text="Usernamee", font=('arial', 20, 'bold')
, bd=20, bg='cadet blue', fg='cornsilk')
self.username_label.grid(row=0, column=0)
self.username = Entry(self.Loginframe1, font=('arial', 20, 'bold')
, textvariable=self.Username)
self.username.grid(row=0, column=1,padx = 10)
self.password_label = Label(self.Loginframe1,text="Usernamee", font=('arial', 20, 'bold')
, bd=20, bg='cadet blue', fg='cornsilk')
self.password_label.grid(row=1, column=0, padx=10)
self.password = Entry(self.Loginframe1, font=('arial', 20, 'bold')
,textvariable=self.Password, show="*")
self.password.grid(row=1, column=1,pady=3)
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++labels and entry for login+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
self.submit_btn = Button(self.Loginframe2, text='Login', width=17,
font=('arial', 20, 'bold'), command = self.submit2)
self.submit_btn.grid(row=3, column=0, pady=20, padx=8)
self.btnReset = Button(self.Loginframe2, text='Reset',
font=('arial', 20, 'bold'), width=17)
self.btnReset.grid(row=3, column=1, pady=20, padx=8)
self.btnExit = Button(self.Loginframe2, text='Exit', width=17,
font=('arial', 20, 'bold'))
self.btnExit.grid(row=3, column=2, pady=20, padx=8)
def submit2(self):
u = (self.Username.get())
p = (self.Password.get())
if (u == ('dera') and p == str(12345)):
self.newWindow = Toplevel(self.master)
self.app = Window2(self.newWindow)
else:
messagebox.showerror("Incorrect login details")
def new_window(self):
self.newWindow = Toplevel(self.master)
self.app = Window2(self.newWindow)
class Window2:
def __init__(self, master):
self.master = master
self.master.title("Resturant Management System")
self.master.geometry("1350x750+0+0")
self.master.config(bg="cadet blue")
self.frame1 = Frame(self.master, bg="powder blue")
self.frame1.pack()
self.welcome_lab = Label(self.frame1, text="Student's Record Management System", font=("arial", 50, "bold"), bg="powder blue")
self.welcome_lab.grid(row=0, column=0, columnspan=2, pady=40)
photo=PhotoImage(file='Fishy.png')
photoimage = photo.subsample(3,3)
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
self.Panholderframe = LabelFrame(self.frame1, width=1350, height=600, font=('arial', 20, 'bold'),
`enter code here` relief='ridge', bg='cadet blue', bd=20)
self.Panholderframe.grid(row=1, column=0)
#+++++++++++++++++++++++++++++++++++++++++++++++Panholdingframe++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
self.student_reg_but = ttk.Button(self.Panholderframe, text="Register student",
command = self.Student_Registeration_window)
self.student_reg_but.grid(row = 0,column = 1,padx = 10,pady=5)
self.student_reg_but.config(image=photo, compound=LEFT)
self.student_reg_but.config(image=photoimage)
self.student_view_but = Button(self.Panholderframe, text="View students information", fg='grey', activeforeground='white',
height=15, width=40, font=("arial", 10, "bold italic"))
self.student_view_but.grid(row = 0,column = 2,padx = 10,pady=5)
self.update_record_but = Button(self.Panholderframe, text="Update record", activebackground='grey', activeforeground='white',
height=15, width=40, font=("arial", 10, "bold italic"))
self.update_record_but.grid(row = 0,column = 3,padx = 10,pady=5)
self.delete_record_but = Button(self.Panholderframe, text="Delete record", activebackground='grey', activeforeground='white',
height=15, width=40, font=("arial", 10, "bold italic"))
self.delete_record_but.grid(row = 1,column = 1,padx = 10,pady=5)
self.student_result_view_but = Button(self.Panholderframe, text="View students result", activebackground='grey',
activeforeground='white', height=15, width=40,
font=("arial", 10, "bold italic"))
self.student_result_view_but.grid(row = 1,column = 2,padx = 10,pady=5)
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++Main screen buttons++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#Student registeration+++++++++++++++++++++++++++++++++++++++++++
def Student_Registeration_window(self):
self.newWindow_reg = Toplevel(self.master)
self.app_reg = Window3(self.newWindow_reg)
class Window3:
def __init__(self, master):
self.master = master
self.master.title("Student Information Management Panel")
self.master.geometry("1350x750+0+0")
self.master.config(bg="cadet blue")
self.frame2 = Frame(self.master, bg="powder blue")
self.frame2.pack()
self.welcome_lab1 = Label(self.frame2, text="Student's Record Registeration Panel", font=("arial", 50, "bold"),
bg="powder blue")
self.welcome_lab1.grid(row=0, column=0, columnspan=2, pady=40)
# +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
self.Panholderframe1 = LabelFrame(self.frame2, width=1350, height=600, font=('arial', 20, 'bold'),
relief='ridge', bg='cadet blue', bd=20)
self.Panholderframe1.grid(row=1, column=0)
# +++++++++++++++++++++++++++++++++++++++++++++++Panholdingframe++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
self.f_name = Entry(self.Panholderframe1, width=50)
self.f_name.place(x=600, y=90)
self.l_name = Entry(self.Panholderframe1, width=50)
self.l_name.place(x=600, y=130)
self.address = Entry(self.Panholderframe1, width=50)
self.address.place(x=600, y=170)
self.state_of_origin = Entry(self.Panholderframe1, width=50)
self.state_of_origin.place(x=600, y=210)
self.LGA = Entry(self.Panholderframe1, width=50)
self.LGA.place(x=600, y=260)
self.department = Entry(self.Panholderframe1, width=50)
self.department.place(x=600, y=300)
self.reg_num = Entry(self.Panholderframe1, width=50)
self.reg_num.place(x=600, y=340)
self.course_of_study = Entry(self.Panholderframe1, width=50)
self.course_of_study.place(x=600, y=380)
self.faculty = Entry(self.Panholderframe1, width=50)
self.faculty.place(x=600, y=420)
self.f_name_label = Label(self.Panholderframe1, text="First Name", font=("arial", 15, "bold italic"),bg='cadet blue').place(x=450, y=80)
self.l_name_label = Label(self.Panholderframe1, text="Last Name", font=("arial", 15, "bold italic"),bg='cadet blue').place(x=450, y=129)
self.address_label = Label(self.Panholderframe1, text="Address", font=("arial", 15, "bold italic"),bg='cadet blue').place(x=450, y=169)
self.state_label = Label(self.Panholderframe1, text="State of origin", font=("arial", 15, "bold italic"),bg='cadet blue').place(x=450, y=209)
self.LGA_label = Label(self.Panholderframe1, text="LGA", font=("arial", 15, "bold italic"),bg='cadet blue').place(x=450, y=259)
self.department_label = Label(self.Panholderframe1, text="Department", font=("arial", 15, "bold italic"),bg='cadet blue').place(x=450, y=299)
self.reg_label = Label(self.Panholderframe1, text="Reg Number", font=("arial", 15, "bold italic"),bg='cadet blue').place(x=450, y=339)
self.course_label = Label(self.Panholderframe1, text="Course", font=("arial", 15, "bold italic"),bg='cadet blue').place(x=450, y=379)
self.faculty_label = Label(self.Panholderframe1, text="Faculty", font=("arial", 15, "bold italic"),bg='cadet blue').place(x=450, y=419)
self.btnsumit = Button(self.Panholderframe1, text='Submit', width=8,
font=('arial', 20, 'bold'),command = self.Student_form_submit)
self.btnsumit.place(x=480, y=450)
self.btnReseet = Button(self.Panholderframe1, text='Reset',
font=('arial', 20, 'bold'), width=8, command=self.StudentReg_reset)
self.btnReseet.place(x=630, y=450)
self.btnExiit = Button(self.Panholderframe1, text='Cancel', width=8,
font=('arial', 20, 'bold'),command = self.Student_reg_exit)
self.btnExiit.place(x=780, y=450)
def Student_form_submit(self):
# Create a database or connect to one
conn = sq.connect("Student_record.db")
# create a cursor to use in pointing to the db
c = conn.cursor()
c.execute("INSERT INTO Student_record VALUES (:f_name, :l_name, :address, :state_of_origin, :LGA, :department ,"
" :reg_num , :course , :faculty)",
{
'f_name': self.f_name.get(),
'l_name': self.l_name.get(),
'address': self.address.get(),
'state_of_origin': self.state_of_origin.get(),
'LGA': self.LGA.get(),
'department': self.department.get(),
'reg_num': self.reg_num.get(),
'course': self.course_of_study.get(),
'faculty': self.faculty.get(),
})
# commit changes
conn.commit()
# close connnection
conn.close()
def Student_reg_exit(self):
self.master.destroy()
#+++++++++++++++++++++++++++++++++++++++++++++++++Entries and label for student details++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
def StudentReg_reset(self):
self.f_name.delete(0, END)
self.l_name.delete(0, END)
self.address.delete(0, END)
self.state_of_origin.delete(0, END)
self.LGA.delete(0, END)
self.department.delete(0, END)
self.reg_num.delete(0, END)
self.course_of_study.delete(0, END)
self.faculty.delete(0, END)
#+++++++++++++++++++++++++++++++++++++++++++++++sumit,cancel and reset Buttons for students registeration+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
conn.commit()
# close connnection
conn.close()
if __name__ == '__main__':
main()
the output does not show the image.