Exception message: bad window path name ".!toplevel3.!toplevel7"

-1

I'm doing a fingerprint update/registration. I'm using a tkinter gui and R307 fingerprint scanner but every time I'm here in this code if ( f.compareCharacteristics() == 0 ): I'm getting an error window path name !toplevel. but when the if statement is false and my program proceed to else I didn't get an error.

Here's my code

import pymysql
from tkinter.ttk import *
from tkinter import *
from tkinter import messagebox
from PIL import Image, ImageTk
from pyfingerprint.pyfingerprint import PyFingerprint

class Main(Frame):
    def __init__(self, master, *args, **kwargs):
        Frame.__init__(self, master, *args, **kwargs)
        self.master = master

        self.update_finger_button = Button(master, text = "Update Fingerprint",width = 20,command = self.Update_finger_admin, bg= "white")
        self.update_finger_button.pack()

        self.db = pymysql.connect(host = "localhost",user = "root",passwd = "justin",db= "thesis_db")
        self.cursor = self.db.cursor()


    def Update_finger_admin(self):
        self.master_register_finger = Toplevel()
        self.master_register_finger.geometry("{}x{}".format(self.ws, self.hs))

        self.Label_update = Label(self.master_register_finger, text = "scan fingerprint to update", width = self.ws, height = self.hs)
        self.Label_update.pack()
        self.Label_update.bind('<Enter>', self.Updated_finger_admin)

    def Updated_finger_admin(self,event):
        try:
            f = PyFingerprint('/dev/ttyUSB0', 57600, 0xFFFFFFFF, 0x00000000)

            if ( f.verifyPassword() == False ):
                raise ValueError('The given fingerprint sensor password is wrong!')

        except Exception as e:
            print('The fingerprint sensor could not be initialized!')
            print('Exception message: ' + str(e))

        print('Currently used templates: ' + str(f.getTemplateCount()) +'/'+ str(f.getStorageCapacity()))

        try:
            Label(self.master_register_finger, text = "Waiting for finger...", width = 20).place(x = 450, y = 680)
            self.master_register_finger.update()

            while ( f.readImage() == False ):
                pass

            f.convertImage(0x01)

            result = f.searchTemplate()
            positionNumber = result[0] 

            if ( positionNumber >= 0 ):
                messagebox.showinfo("Notice", "Fingerprint is already registered\n please try again", parent = self.master_register_finger)

            Label(self.master_register_finger, text = "Remove finger...", width = 20).place(x = 450, y = 680)
            self.master_register_finger.update()

            time.sleep(2)

            Label(self.master_register_finger, text = "Waiting for the same finger again...", width = 28).place(x = 410, y = 680)
            self.master_register_finger.update()

            while ( f.readImage() == False ):
                pass

            f.convertImage(0x02)

            if ( f.compareCharacteristics() == 0 ):
                Label(self.master_register_finger, text = "Finger do not match",width = 30).place(x = 430, y = 680)
                Label(self.master_register_finger, text = "Scan your finger again").place(x = 436, y = 700)
                self.master_register_finger.update()
                self.master_register_finger.destroy()
                self.register_fingerprint()

            else:
                f.createTemplate()

                positionNumber = f.storeTemplate()
                self.cursor.execute("INSERT INTO residents_db (FINGER_TEMPLATE) VALUES(%s)",positionNumber)
                self.db.commit()
                messagebox.showinfo("Success", "Fingerprint successfully updated", parent = self.master_register_finger)
                self.master_register_finger.destroy()

        except Exception as e:
            print('Operation failed!')
            print('Exception message: ' + str(e))
            exit(1)

if __name__== "__main__":
    root = Tk()
    main = Main(root)
    root.mainloop()

I hope you guys can help me thanks.

python
tkinter
asked on Stack Overflow Feb 9, 2020 by Nuuuuuub

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0