Foros Python

Versión completa: Seleccionar texto en widget Entry en tkinter.
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola gente, ¿ cómo están?, Francisco, necesito una manito,
como hacer que esta línea funcione.-

Código:
nombre.selection_range(indIni,int(indice))


Código:
from tkinter import ttk
import tkinter as tk
from functools import partial

def corregir(palabra):
    print("Corregir...: ",palabra)


def validar_entry(textoFinal, letra, indice, nombre):
    if letra == " ":
        indTop = int(indice)
        indIni = indTop-1
        while True:
            if textoFinal[indIni:indTop] == " " or indIni == 0:
                if indIni >= 1:
                    indIni += 1
                break
            indIni -= 1
            indTop -= 1

        palabra = textoFinal[indIni:int(indice)]
        nombre.selection_range(indIni,int(indice))       
        corregir(palabra)
   
    return True

def main():

    root = tk.Tk()
    root.geometry("300x200+700+300")
    root.title("Mi aplicación")

  
    entry = ttk.Entry(
        validate="key",
        validatecommand=(
            root.register(partial(validar_entry)), "%P", "%S", "%i", "%W"))
    entry.place(x=50, y=50, width=150)
    entry.focus()


Cita:Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\Daniel Virgili\AppData\Local\Programs\Thonny\lib\tkinter\__init__.py", line 1705, in __call__
    return self.func(*args)
  File "C:\Users\Daniel Virgili\Desktop\Practica\Corregir\módulo1.py", line 32, in validar_entry
    nombre.selection_range(indIni,int(indice))
AttributeError: 'str' object has no attribute 'selection_range'


Slds. Daniel ☕☕☕
Ufffffffffffffffff, por Dios que manera de leer y practicar,
pero al fin salió, saludos a todos...


Código:
#-------------------------------------------------------------------------------
# Name:        módulo1
# Purpose:     Corrector ortográfico
#
# Author:      Daniel
#
# Created:     26/07/2022
# Copyright:   (c) Daniel 2022
# Licence:     <your licence>
#-------------------------------------------------------------------------------
from functools import partial
from tkinter import ttk
import tkinter as tk

def corregir(palabra):
    print("Corregir...: ",palabra)

def validar_entry(entry, textoFinal, letra, indice):
    if letra == " ":
        indTop = int(indice)
        indIni = indTop-1
        while True:
            if textoFinal[indIni:indTop] == " " or indIni == 0:
                if indIni >= 1:
                    indIni += 1
                break
            indIni -= 1
            indTop -= 1

        palabra = textoFinal[indIni:int(indice)]
        entry.select_range(indIni,int(indice))       
        corregir(palabra)
   
    return True


def main():
    root = tk.Tk()
    root.config(width=300, height=200)
    root.title("Mi aplicación")
    palabra = ["", 0]
    entry = ttk.Entry(
        validate="key")
    entry.focus()
    entry.place(x=50, y=50, width=150)
   
    vcmd = (root.register(partial(validar_entry, entry)), "%P", "%S", "%i")
    entry.config(validatecommand=vcmd)
   
    root.mainloop()

if __name__ == '__main__':
    main()

Slds. Daniel ☕☕☕
Excelente Wink