una separar reemplazar por especiales eliminar contar comparar caracteres caracter cadenas cadena python tkinter tkinter-entry

separar - Python Tkinter: elimine el último carácter de una cadena



reemplazar caracteres en python (2)

Estoy haciendo una entrada que solo permite el ingreso de números. Actualmente estoy atascado en eliminar el carácter que acaba de ingresar si ese personaje no es un número entero. Si alguien reemplazara el "EN BLANCO" con lo que necesita entrar allí, sería de mucha ayuda.

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()


También puede cambiar la línea de arriba, a esto:

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)

o:

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)

Es un buen trabajo poner un ejemplo de trabajo para que lo usemos, ayudó a acelerar esto.


Si está haciendo la validación de datos, debe usar las características integradas del widget de entrada, específicamente el validatecommand y validate attributes.

Para una descripción de cómo estos atributos, vea esta respuesta .