Исключение в обратном вызове Tkinter (последний вызов последним) - PullRequest
0 голосов
/ 29 сентября 2019

Я пытаюсь использовать значение email_address_entry, но я сталкиваюсь с этой ошибкой. Я хочу использовать значение email_address_entry для объекта sign_up_frame.

Получение этого исключения в обратном вызове Tkinter:

Трассировка (последний последний вызов):

Файл"C: \ Program Files (x86) \ Python37-32 \ lib \ tkinter__init __. Py", строка 1705, в вызов , возврат self.func (* аргументы)

файл "D:/ Скучный колледж / PyProject / MCB2 / sign_up_1.py ", строка 140, в signup_button_click self.ans_entry.get (), send_email ()))

Файл" D: / Скучный колледж / PyProject / MCB2 / sign_up_1.py ", строка 154, в send_email email_id = sign_up_frame.get_email ()

Файл" D: / Скучный колледж / PyProject / MCB2 / sign_up_1.py ", строка 77, в get_email mail = self.email_address_entry. get ()

Файл "C: \ Program Files (x86) \ Python37-32 \ lib \ tkinter__init __. py", строка 2682, в get return self.tk.call (self._w, 'get') _tkinter.TclError: неверное имя команды ".! frame2.! entry"

Мой код выглядит следующим образом:

from tkinter import*
from tkinter.ttk import*
from sqlite3 import*
from tkinter import messagebox
import Login_Page


class SignUp(Tk):
    def __init__(self, *args, **kwargs):
        Tk.__init__(self, *args, **kwargs)

        self.title('Contact Book')
        self.geometry('500x400')

        self.style = Style()
        self.style.configure('Header.TFrame', background='Blue')

        self.header_frame = Frame(self, style='Header.TFrame')
        self.header_frame.pack(side=TOP, fill=X)

        self.style.configure('Header.TLabel', background='Blue', foreground='White', font=(NONE,20))

        self.header_label = Label(self.header_frame, style='Header.TLabel', text='Sign Up')
        self.header_label.pack(pady=10)

        self.content_frame = Frame(self)
        self.content_frame.pack(side=TOP, fill=Y, pady=15)

        self.style.configure('Content.TLabel', foreground='Black', font=(NONE, 15))
        self.style.configure('Content.TEntry', foreground='Black', font=(NONE, 15))

        self.email_address_label = Label(self.content_frame, style='Content.TLabel', text='Emailaddress:')
        self.email_address_label.grid(row=0, column=0, pady=8)

        self.email_address_entry = Entry(self.content_frame, style='Content.TEntry', width=30)
        self.email_address_entry.grid(row=0, column=1, padx=5, pady=8)

        self.username_label = Label(self.content_frame, style='Content.TLabel', text='Username:')
        self.username_label.grid(row=1, column=0, pady=8)

        self.username_entry = Entry(self.content_frame, style='Content.TEntry', width=30)
        self.username_entry.grid(row=1, column=1, padx=5, pady=8)

        self.password_label = Label(self.content_frame, style='Content.TLabel', text='Enter Password:')
        self.password_label.grid(row=2, column=0, pady=8)

        self.password_entry = Entry(self.content_frame, style='Content.TEntry', show='*', width=30)
        self.password_entry.grid(row=2, column=1, pady=8, padx=5)

        self.renter_password_label = Label(self.content_frame, style='Content.TLabel', text='Re-Enter Password:')
        self.renter_password_label.grid(row=3, column=0, pady=8)

        self.renter_password_entry = Entry(self.content_frame, style='Content.TEntry', show='*', width=30)
        self.renter_password_entry.grid(row=3, column=1, pady=8, padx=5)

        self.style.configure('SUW.TButton', foreground='Blue')

        self.submit_button = Button(self.content_frame, style='SUW.TButton', text='Submit', width=15,
                                command=self.submit_click)
        self.submit_button.grid(row=4, column=1, pady=20)

    def submit_click(self):
        if self.password_entry.get() == self.renter_password_entry.get():
            con = connect('AppDatabase.db')
            cur = con.cursor()
            cur.execute("""insert into LoginData (Username, Password, Email) values('{0}', '{1}', 
                       '{2}')""".format(self.username_entry.get(), self.password_entry.get(),
                                        self.email_address_entry.get()))
            messagebox.showinfo('Status', 'The Information has been inserted')
            con.commit()
            con.close()
            self.destroy()
        else:
            messagebox.showerror('Invalid', 'Password does not match')

    def get_email(self):
        mail = self.email_address_entry.get()
        return mail


class SafetyQuestion(Tk):
    def __init__(self, *args, **kwargs):
        Tk.__init__(self, *args, **kwargs)

        self.title("Contact Book")
        self.geometry('500x400')

        self.style = Style()
        self.style.configure('Head.TFrame', background='Blue')

        self.head_frame = Frame(self, style='Head.TFrame')
        self.head_frame.pack(side=TOP, fill=X)

        self.style.configure('Head.TLabel', foreground='White', background='Blue', font=(NONE, 15))

        self.head_label = Label(self.head_frame, text='Select one of the following Question:',
                            style='Head.TLabel')
        self.head_label.pack(pady=3)

        self.val = StringVar()
        # val.set('Empty')

        self.r1 = Radiobutton(self, text='What is your nickname?', variable=self.val, value='What is your nickname?')
        self.r1.pack(anchor=W, pady=10, padx=10)
        self.r2 = Radiobutton(self, text='What is the name of your pet?', variable=self.val,
                          value='What is the name of your pet?')
        self.r2.pack(anchor=W, pady=10, padx=10)
        self.r3 = Radiobutton(self, text='What is your favourite food?', variable=self.val,
                          value='What is your favourite food?')
        self.r3.pack(anchor=W, pady=10, padx=10)
        self.r4 = Radiobutton(self, text='What ia your favourite Bike?', variable=self.val,
                          value='What ia your favourite Bike?')
        self.r4.pack(anchor=W, pady=10, padx=10)

        self.answer_frame = Frame(self, style='Head.TFrame')
        self.answer_frame.pack(side=BOTTOM, fill=X)

        self.style.configure('Ans.TLabel', foreground='White', background='Blue', font=(NONE, 12))

        self.ans_label = Label(self.answer_frame, text='Answer:', style='Ans.TLabel')
        self.ans_label.grid(row=0, column=0, pady=2)

        self.style.configure('Ans.TEntry', foreground='Red', font=(NONE, 12))

        self.ans_entry = Entry(self.answer_frame, style='Ans.TEntry', width=25)
        self.ans_entry.grid(row=0, column=1, pady=2)

        self.style.configure('Ans.TButton', forefround='Blue', font=(NONE, 12))

        self.ans_sub_button = Button(self.answer_frame, text='Sign Up', style='Ans.TButton',
                                 command=self.signup_button_click)
        self.ans_sub_button.grid(row=0, column=2, pady=10, padx=150)

    def signup_button_click(self):
        signup_con = connect('AppDatabase.db')
        signup_cur = signup_con.cursor()
        signup_cur.execute("""update LoginData 
                            set Question='{0}', Answer='{1}'
                             where Email='{1}'""".format(self.val.get(),
                                                         self.ans_entry.get(), send_email()))
        signup_con.commit()
        signup_con.close()
        messagebox.showinfo('Successful', 'Successfully Signed Up')
        self.destroy()
        Login_Page.Login()


if __name__ == "__main__":

    sign_up_frame = SignUp()
    sign_up_frame.mainloop()

    def send_email():
        email_id = sign_up_frame.get_email()
        return email_id

    safety_question = SafetyQuestion()
    safety_question.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...