Исключение в Tkinter Callback: объект типа Bool не вызывается - PullRequest
0 голосов
/ 27 мая 2019

Итак, я работал над этим интерфейсом входа-регистрации Tkinter, когда столкнулся с ошибкой на моей стороне регистрации.Сначала я думал, что это из-за плохо реализованных классов, но это было не так.Вот мой код:

def getinfo(event):
    register_window = Tk(screenName='RegisterWindow')
    register_hfont = Font(root=register_window, family='product sans', size=18)
    register_nfont = Font(root=register_window, family='product sans', size=10)
    head_label = Label(register_window, text='Welcome!')
    head_label.grid(row=0)
    head_label.configure(font=register_hfont)
    user_label = Label(register_window, text='Username ')
    user_label.grid(row=2)
    username_entry = Entry(register_window)
    username_entry.grid(row=2, column=2)
    user_label.configure(font=register_nfont)
    pass_label = Label(register_window, text='Password ')
    pass_label.grid(row=3)
    password_entry = Entry(register_window)
    password_entry.grid(row=3, column=2)
    pass_label.configure(font=register_nfont)
    email_label = Label(register_window, text='Email ')
    email_label.grid(row=4)
    email_entry = Entry(register_window)
    email_entry.grid(row=4, column=2)
    email_label.configure(font=register_nfont)
    name_label = Label(register_window, text='Name ')
    name_label.grid(row=5)
    name_entry = Entry(register_window)
    name_entry.grid(row=5, column=2)
    name_label.configure(font=register_nfont)

    print('data submissions successful')
    submit_button = Button(register_window, text='Register')
    submit_button.bind('<Button-1>', register(username_entry, password_entry, name_entry, email_entry))
    submit_button.grid(row=7, column=1)
    register_window.mainloop()
    if RegisterVar:
        register_window.destroy()
    else:
        pass


def register(eusername, epassword, ename, eemail):
    uid = eusername.get()
    pwd = epassword.get()
    name = ename.get()
    email = eemail.get()
    print('function called')
    register_command = 'insert into logininfo values("'+uid+'","'+pwd+'","'+name+'","'+email+'");'
    cursor.execute(register_command)
    RegisterVar = True
    print('Registration Successful!')
    return True

Когда я щелкнул объект submit_button, я столкнулся с этой ошибкой:

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\adity\AppData\Local\Programs\Python\Python36\lib\tkinter\__init__.py", line 1705, in __call__
    return self.func(*args)
TypeError: 'bool' object is not callable

Любая помощь приветствуется!

1 Ответ

0 голосов
/ 27 мая 2019

Вы передаете submit_button.bind результат вызова register в отличие от самой функции (которую вызовет tinter).

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