Как мне очистить сетку

#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. Эта команда, которую вы мне дали, стирает, когда я пишу на наборе, я бы хотел, я написал электронное письмо, я нажал кнопку сохранить, на экране отобразились бы электронное письмо и введенный мной пароль, и когда я нажал кнопку, оно стерло бы электронное письмо, написанное на экране