#python #tkinter
#python #tkinter
Вопрос:
Я хотел бы очистить сетку записи электронной почты и пароля при нажатии кнопки del, и тогда я все равно смогу сохранять новые электронные письма и пароли, как мне это сделать? Я попытался создать def clear с помощью grid_slaves, но он стирает все, я хочу, чтобы он удалялся, просто напишите email и введите пароль
from tkinter import *
roots = Tk()
roots.title("Email's save")
roots.geometry("500x500")
e = Entry(roots)
e.grid(row=0, column=1)
e.focus_set()
p = Entry(roots, show="*")
p.grid(row=1, column=1)
p.focus_set()
textEmail = StringVar()
textPassword = StringVar()
def callback():
textEmail.set(textEmail.get() e.get() "n")
textPassword.set(textPassword.get() p.get() "n")
def EmailPassword():
email = Label(roots, text="Email: ",font=('Courier', 14))
email.grid(row=0, sticky=W)
passoword = Label(roots, text="Password: ",font=('Courier', 14))
passoword.grid(row=1, sticky=W)
saved_email = Label(roots, text="Saved Email",font=('Courier', 14))
saved_email.grid(row=15, column=0)
saved_password = Label(roots, text="Password",font=('Courier', 14))
saved_password.grid(row=15, column=15)
write_email = Label(roots, textvariable=textEmail,font=('Courier', 14))
write_email.grid(row=20, column=0)
write_password = Label(roots, textvariable=textPassword,font=('Courier', 14))
write_password.grid(row=20, column=15)
btn_save = Button(roots, text="Save", command= callback)
btn_save.grid(row=10, column=2, sticky=W)
btn_del = Button(roots, text="X", fg="red")
btn_del.grid(row=60, column= 20)
roots.mainloop()
EmailPassword()
Ответ №1:
Сетка — это всего лишь одно текстовое поле с новыми строками. Чтобы очистить его, просто установите текстовое значение в «».
Попробуйте этот код.
from tkinter import *
roots = Tk()
roots.title("Email's save")
roots.geometry("500x500")
e = Entry(roots)
e.grid(row=0, column=1)
e.focus_set()
p = Entry(roots, show="*")
p.grid(row=1, column=1)
p.focus_set()
textEmail = StringVar()
textPassword = StringVar()
def callback():
textEmail.set(textEmail.get() e.get() "n")
textPassword.set(textPassword.get() p.get() "n")
def clearentries():
e.delete(0, 'end')
p.delete(0, 'end')
def cleargrid():
textEmail.set("")
textPassword.set("")
def EmailPassword():
print ('save')
global lstlabels
email = Label(roots, text="Email: ",font=('Courier', 14))
email.grid(row=0, sticky=W)
passoword = Label(roots, text="Password: ",font=('Courier', 14))
passoword.grid(row=1, sticky=W)
saved_email = Label(roots, text="Saved Email",font=('Courier', 14))
saved_email.grid(row=15, column=0)
saved_password = Label(roots, text="Password",font=('Courier', 14))
saved_password.grid(row=15, column=15)
write_email = Label(roots, textvariable=textEmail,font=('Courier', 14))
write_email.grid(row=20, column=0)
write_password = Label(roots, textvariable=textPassword,font=('Courier', 14))
write_password.grid(row=20, column=15)
btn_save = Button(roots, text="Save", command= callback)
btn_save.grid(row=10, column=2, sticky=W)
btn_del = Button(roots, text="X", fg="red", command= cleargrid) # reset grid
btn_del.grid(row=60, column= 20)
roots.mainloop()
def key(event): # listen for key press
if event.keysym == 'Delete':
clearentries() # clear text boxes
roots.bind_all('<Key>', key)
EmailPassword()
Комментарии:
1. Я хотел бы очистить write_email
Ответ №2:
Вы можете использовать .set("")`` to remove whatever you entered in your
запись« wigit
Вот простой пример, который может вам помочь
from tkinter import *
root=Tk()
#string var
email=StringVar()
def save():
email.set("")
a=Label(root,text='Email').grid(row=0,column=0)
ae=Entry(root,textvar=email,font=("arial 16 bold")).grid(row=0,column=1)
btn=Button(text='Save',command=save).grid(row=1,column=0)
root.mainloop()
Комментарии:
1. Эта команда, которую вы мне дали, стирает, когда я пишу на наборе, я бы хотел, я написал электронное письмо, я нажал кнопку сохранить, на экране отобразились бы электронное письмо и введенный мной пароль, и когда я нажал кнопку, оно стерло бы электронное письмо, написанное на экране