Я действительно новичок в python и сейчас работаю над приложением для входа. Пока программа загружается, и когда вы нажимаете новую кнопку, появляется новое окно с просьбой ввести детали. У меня проблема с отображением подсказки под кнопкой «регистрация прошла успешно», а затем удаление текста, введенного пользователем в поля ввода, и выдает ошибку:
РЕДАКТИРОВАТЬ:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\ZacBe\AppData\Local\Programs\Python\Python37-32\lib\tkinter\__init__.py", line 1705, in __call__
return self.func(*args)
File "C:/Users/ZacBe/OneDrive - New College Lanarkshire/Python Alan Mcgregor/PyCharm/Password Saver 1.1.py", line 88, in registerUser
usernameEntry.delete(0, END)
File "C:\Users\ZacBe\AppData\Local\Programs\Python\Python37-32\lib\tkinter\__init__.py", line 2679, in delete
self.tk.call(self._w, 'delete', first, last)
_tkinter.TclError: invalid command name ".!toplevel.!canvas.!entry"
Код:
from tkinter import *
import hashlib
import os
def main():
global root
root = Tk()
root.geometry("1000x800")
root.title("Password Saver 1.1")
root.resizable(False, False)
canvas = Canvas(width=300, height=200, bg='black')
canvas.pack(expand=YES, fill=BOTH)
canvas1 = Canvas(width = 87, height= 73)
canvas1.place(x= 450, y = 180)
global bgImage
bgImage = PhotoImage(file='...')
logoImage = PhotoImage(file='...')
canvas1.create_image(47,40, image=logoImage)
canvas.create_image(1,1, image=bgImage, anchor="nw")
canvas.create_text(500, 310, text= "Welcome To The Password Saver App", font="Calibri 18", fill = "white")
canvas.create_text(500,350,text= "Are you a returning user or a new user?", font="Calibri 18", fill = "white")
Button(text="Returning",height = 3, width = 17,font = "Calibri 14").place(x=310,y=400)
Button(text="New",height = 3, width = 17,font = "Calibri 14", command = registerUser).place(x=510,y=400)
root.mainloop()
def createScreen2():
global screen1
screen1 = Toplevel()
screen1.geometry("400x400")
screen1.title("Registration")
screen1.resizable(False, False)
global canvas2
canvas2 = Canvas(screen1,width = 300, height= 300)
canvas2.pack(expand=YES, fill = BOTH)
canvas2.create_image(1, 1, image=bgImage, anchor="nw")
canvas2.create_text(200, 20, text="Please Enter Your Details Below:", fill = "white", font= "Calibri 14")
canvas2.create_text(200, 100, text= "Enter a Username:", fill = "white", font= "Calibri 12")
canvas2.create_text(200, 180, text= "Enter a Password:", fill = "white", font= "Calibri 12")
global username
global password
global usernameEntry
global passwordEntry
username = StringVar()
password = StringVar()
usernameEntry = Entry(canvas2, width = 40, justify = "center", textvariable= username)
usernameEntry.place(x= 80, y= 120)
passwordEntry = Entry(canvas2, width = 40, justify = "center", textvariable = password, show= "*")
passwordEntry.place(x= 80, y= 200)
Button(canvas2,text= "Register", width = 12, height = 3).place(x= 150, y= 250)
screen1.mainloop()
def registerUser():
createScreen2()
registeredUsername = username.get()
registeredPassword = password.get()
writeUser = open("Username", "a+")
writePass = open("Pass", "a+")
writeUser.write(registeredUsername+"\n")
writePass.write(registeredPassword+"\n")
writeUser.close()
writePass.close()
usernameEntry.delete(0, END)
passwordEntry.delete(0, END)
canvas2.create_text(200, 250, text = "Registration successful", fill = "green", font = "Calibri 11")
changedir()
main()