Python Tkinter: Delete the Last Character of a String

python, tkinter, tkinter-entry

Solution

You could also change the line above as well, to this:

    if not self.e.get().isdigit():
        #take the string currently in the widget, all the way up to the last character
        txt = self.e.get()[:-1]
        #clear the widget of text
        self.e.delete(0, tk.END)
        #insert the new string, sans the last character
        self.e.insert(0, txt)

or:

if not self.e.get().isdigit():
     #get the length of the string in the widget, and subtract one, and delete everything up to the end
     self.e.delete(len(self.e.get)-1, tk.END)

Good job putting up a working example for us to use, helped speed this along.

Problem

I am making an entry that only allows numbers to be entered. I am currently stuck on deleting the character just entered if it that character is not a integer. If someone will replace the the "BLANK" with what needs to go in there it would be a lot of help. ``` import Tkinter as tk class Test(tk.Tk): def __init__(self): tk.Tk.__init__(self) self.e = tk.Entry(self) self.e.pack() self.e.bind("<KeyRelease>", self.on_KeyRelease) tk.mainloop() def on_KeyRelease(self, event): #Check to see if string consists of only integers if self.e.get().isdigit() == False: self.e.delete("BLANK", 'end')#I need to replace 0 with the last character of the string else: #print the string of integers print self.e.get() test = Test() ```

Original source

Related problems