Requisitos previos: Python GUI – tkinter
En primer lugar, debemos encontrar todas las palabras o letras que queremos reemplazar en nuestro texto a continuación, para eso usaremos la función de búsqueda en la que determinaremos todos los índices iniciales y finales del editor de la misma palabra después de eso, aplicaremos la funcionalidad de reemplazo en la que eliminaremos esa parte del texto y luego aplicaremos la función de inserción para agregar el texto en esas posiciones exactas.
Importantes funciones incorporadas utilizadas
- Tk() crea una ventana base/widget base tkinter
- Frame() crea un marco separado en una posición particular en la instancia de Tk()
- Label() agrega la declaración o el nombre o el etiquetado de cualquier cosa
- Entry() agrega el cuadro de diálogo para ingresar el texto
- ‘EntryInstance’ .pack() empaqueta el cuadro de entrada en la posición especificada
- Button() coloca un botón en la posición especificada con el comando y la etiqueta
- Texto() coloca un cuadro de texto para escribir y agregar contenido
- ‘TextInstance’ .insert() agrega texto en el índice especificado (aquí el índice es de tipo string)
- ‘TextInstance’ .tag_add() Las etiquetas se utilizan para hacer referencia a todos los contenidos al mismo tiempo, por ejemplo, si un párrafo contiene el texto «esto» cinco veces y para realizar un cambio en todos ellos al mismo tiempo, usamos etiquetas . tag_Add agrega todo el texto bajo una etiqueta en particular donde proporcionamos el nombre
- ‘TextInstance’ .tag_config() se usan para configurarlos, es decir, resaltar, fuente, color de fondo, color de primer plano
- ‘TextInstance’ .tag_remove() utilizado para eliminar todo el texto utilizado desde el índice inicial hasta el índice final
- ‘EntryInstance’ .get() solía tener acceso al texto ingresado dentro del cuadro de diálogo de Entrada
- ‘TextInstance’ .search() se usa para buscar un texto en particular en todo el editor desde el índice inicial hasta el final con un argumento de ‘nocase’ que, si se establece en 1, implica que no se considerará la distinción entre mayúsculas y minúsculas en la búsqueda
- ‘ButtonInstance’ .config() utilizado para configurar el botón, es decir, podemos agregar por separado el comando o los cambios en el botón que se llevarán a cabo cuando se presione
- ‘TkInstance’ .mainloop() utilizado para asegurarse de que el widget de texto permanezca abierto
A continuación se muestra la implementación.
Python3
from tkinter import * # to create a window root = Tk() # root window is the parent window fram = Frame(root) # Creating Label, Entry Box, Button # and packing them adding label to # search box Label(fram, text ='Find').pack(side = LEFT) # adding of single line text box edit = Entry(fram) # positioning of text box edit.pack(side = LEFT, fill = BOTH, expand = 1) # setting focus edit.focus_set() # adding of search button Find = Button(fram, text ='Find') Find.pack(side = LEFT) Label(fram, text = "Replace With ").pack(side = LEFT) edit2 = Entry(fram) edit2.pack(side = LEFT, fill = BOTH, expand = 1) edit2.focus_set() replace = Button(fram, text = 'FindNReplace') replace.pack(side = LEFT) fram.pack(side = TOP) # text box in root window text = Text(root) # text input area at index 1 in text window text.insert('1.0', '''Type your text here''') text.pack(side = BOTTOM) # function to search string in text def find(): # remove tag 'found' from index 1 to END text.tag_remove('found', '1.0', END) # returns to widget currently in focus s = edit.get() if (s): idx = '1.0' while 1: # searches for desired string from index 1 idx = text.search(s, idx, nocase = 1, stopindex = END) if not idx: break # last index sum of current index and # length of text lastidx = '% s+% dc' % (idx, len(s)) # overwrite 'Found' at idx text.tag_add('found', idx, lastidx) idx = lastidx # mark located string as red text.tag_config('found', foreground ='red') edit.focus_set() def findNreplace(): # remove tag 'found' from index 1 to END text.tag_remove('found', '1.0', END) # returns to widget currently in focus s = edit.get() r = edit2.get() if (s and r): idx = '1.0' while 1: # searches for desired string from index 1 idx = text.search(s, idx, nocase = 1, stopindex = END) print(idx) if not idx: break # last index sum of current index and # length of text lastidx = '% s+% dc' % (idx, len(s)) text.delete(idx, lastidx) text.insert(idx, r) lastidx = '% s+% dc' % (idx, len(r)) # overwrite 'Found' at idx text.tag_add('found', idx, lastidx) idx = lastidx # mark located string as red text.tag_config('found', foreground ='green', background = 'yellow') edit.focus_set() Find.config(command = find) replace.config(command = findNreplace) # mainloop function calls the endless # loop of the window, so the window will # wait for any user interaction till we # close it root.mainloop()
Producción:
Publicación traducida automáticamente
Artículo escrito por parshavnahta97 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA