2017-11-27 2 views
0

Ich mache ein Programm, so dass Menschen ihre Namen eingeben können. Wie kann es so aussehen, dass wenn ich die Rücktaste drücke, ein Eintrags-Widget entfernt wird?Wie entferne ich ein Eingabe-Widget beim Drücken der Rücktaste

from tkinter import* 
import time 
import sys 
master = Tk() 
master.title('Tournament Software') 
master.geometry("800x800") 
master.configure(background="black") 
entryList = list() 
def end(): 
    master.destroy() 
def click1(): 
    master.destroy() 
    master1 = Tk() 
    master1.title("Tournament Software") 
    master1.geometry("800x800") 
    master1.configure(background="black") 
    la=Label(master1, text="Enter Contestant Names:",font="none 50 bold", fg="white", bg="black").pack() 
    lab=Label(master1, text="Press Enter For More Contestants",font="none 10 bold", fg="white",bg="black").pack() 
    def enter_event1(event): 
     entryList.append(Entry(master1,bd=5,width=50)) 
     entryList[-1].pack() 
     print(entryList) 
    def back_event(event): 
     #don't know what to put here. 
    e=Entry(master1, bd=5,width=50).pack() 
    master1.bind("<Return>", enter_event1) 
    master1.bind("<BackSpace>", back_event) 
l=Label(master, text="Tournament Software", font="none 50 bold", bg="black", fg="white").pack() 
b=Button(master, text="Start",font="none 50 bold",command = click1).pack(side=LEFT) 
b1=Button(master, text="Quit",font="none 55 bold",command = end).pack(side=RIGHT) 
mainloop() 
+0

Wollen Sie den Eintrag, in dem der Rück gedrückt wurde zerstört werden? Und die Spieler möchten möglicherweise die Rücktaste drücken, um die Schreibweise zu korrigieren. Daher denke ich, dass Sie den Eintrag nur entfernen möchten, wenn er leer ist. Habe ich recht? –

+0

ja, oder Sie können die Schlüsselverschiebung oder etwas anderes machen –

Antwort

2

event.widget ist das Widget, in dem das Ereignis aufgetreten ist, hier ist es der Eintrag, in dem die Taste gedrückt wurde.

So einen Eintrag zu zerstören, wenn Backspace nur gedrückt wird, wenn er leer ist Sie verwenden kann:

def back_event(event): 
    if not event.widget.get(): 
     # the entry is empty 
     event.widget.destroy() 
Verwandte Themen