Gewusst wie: löschen der Eingabe-widget nach dem letzten Tastendruck in Tkinter?
Ich versuche, klar die Entry
widget, nachdem der Benutzer eine Taste drückt mit Tkinter.
Versuchte ich mit ent.delete(0, END)
aber ich bekam eine Fehlermeldung, dass strings nicht über das Attribut löschen.
Hier ist mein code, wo ich immer Fehler auf real.delete(0, END)
:
secret = randrange(1,100)
print(secret)
def res(real, secret):
if secret==eval(real):
showinfo(message='that is right!')
real.delete(0, END)
def guess():
ge = Tk()
ge.title('guessing game')
Label(ge, text="what is your guess:").pack(side=TOP)
ent = Entry(ge)
ent.pack(side=TOP)
btn=Button(ge, text="Enter", command=lambda: res(ent.get(),secret))
btn.pack(side=LEFT)
ge.mainloop()
InformationsquelleAutor der Frage Dan | 2010-02-14
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nach stochern ein bisschen durch die Einführung in Tkinterich kam mit dem code unten, die macht nichts anderes als anzuzeigen, ein Textfeld und deaktivieren Sie es, wenn die
"Clear text"
- Taste gedrückt wird:InformationsquelleAutor der Antwort GreenMatt
ent.delete(0, END)
ist die richtige Antwort, vorausgesetzt, dassent
ist eine richtige Referenz zu dem entry-widget. Wenn Sie erhalten die Fehlermeldung, die Sie sagen, Sie tun, Sie haben einen Fehler in Ihrem code. Zeigen Sie uns den code, wenn Sie nicht in der Lage sind zu erkennen, die Fehler selbst.InformationsquelleAutor der Antwort Bryan Oakley
real
bekommt den Wertent.get()
das ist nur ein string. Er hat keine Ahnung, Woher es kam, und keine Möglichkeit, Einfluss auf das widget.Statt
real.delete()
rufen.delete()
auf das entry-widget selbst:InformationsquelleAutor der Antwort Beni Cherniavsky-Paskin
Ich bin mir unklar über Ihre Frage. Von http://effbot.org/tkinterbook/entry.htm#patternses
scheint Sie nur brauchen, um eine Zuordnung nach Ihnen genannt zu löschen.
Zu Eintrag hinzufügen text-widget, verwenden Sie die insert-Methode. Ersetzen Sie den aktuellen text, den Sie aufrufen können, löschen Sie, bevor Sie fügen Sie den neuen text ein.
Könnte Sie post ein bisschen mehr code?
InformationsquelleAutor der Antwort Charles Merriam
Zunächst stellen Sie sicher, dass der Text aktiviert ist, dann löschen Sie Ihre tags, und dann der Inhalt.
Wenn der Text "DEAKTIVIEREN", das löschen funktioniert nicht, weil das Textfeld im nur-Lesen-Modus.
InformationsquelleAutor der Antwort Eric B.
Du sollst gehen mit
ent.delete(0,"end")
statt mit 'ENDE', 'Ende' in Anführungszeichen.Dieser wird Ihr problem lösen
InformationsquelleAutor der Antwort Prashant Mishra
Versuchen Sie es mit diesem:
InformationsquelleAutor der Antwort I'm A Cat