[Python-es] Problemas con tkinter

Miguel Sanchez msanchez en uninet.edu
Mie Nov 18 13:12:30 EST 2020



El Wed, 18 Nov 2020 09:27:32 +0100
Javier Perez <javierperez en perasalvino.es> dijo:

> Gracias Miguel,
> 
> 
> Estoy empezando con las dos cosas, o sea que a lo mejor me estoy liando.
> 
> 
> Lo que necesito es muy simple:
> Necesito meter un campo de texto en python para limpiarlo e introducirlo en una bbdd.
> 
> O sea un imput seria perfecto pero no lo puedo usar porque el texto que le voy a meter lleva retornos.
> 
> 
> Mi idea era que al ejecutar la aplicación me muestre el cuadro de dialogo, le pego el texto y después se ejecuta el resto de la aplicación.
> 
> ¿ese “resto de la aplicación” puede estar fuera del cuadro de dialogo?
> 
> Por eso quería sacar fuera del cuadro de dialogo esa variable, la que tiene el texto a tratar.
> 
> ¿me explico mejor?

Es esto lo que pretendes hacer?


import tkinter as tk

def foo(root, texto):
    print('con este texto "{}" hago lo que quiero'.format(texto))
    root.quit()
    root.destroy()

root = tk.Tk()
root.geometry("600x400")

def getTextInput():
    result = textExample.get("1.0", "end")
    foo(root, result)
    
textExample = tk.Text(root, height=10)
textExample.pack()
btnRead = tk.Button(root, height=2, width=50, text="Introducir en la bbdd", command=getTextInput)
btnRead.pack()
root.mainloop()

print('mi programa sigue por aquí')



Saludos



> 
> 
> 
> 
> Saludos,
> 
> --
> Javier Pérez
> http://es.linkedin.com/in/javierperez1
> http://www.perasalvino.es/
> 
> 
> 
> 
> > El 17 nov 2020, a las 18:19, Miguel Sanchez <msanchez en uninet.edu> escribió:
> > 
> > Hola:
> > 
> > 
> > No veo claro lo que pretendes
> > 
> > noticia = getTextInput()
> > print(noticia)
> > 
> > Están fuera del bucle por lo que se ejecutarán cuando ya no exista textExample con lo que debería dar error
> > y por otro lado quién esperas que reciba el return de getTextInput()??
> > 
> > 
> > Saludos
> > 
> > 
> > El Tue, 17 Nov 2020 12:27:16 +0100
> > Javier Perez <javierperez en perasalvino.es> dijo:
> >   
> >> Hola a todos,
> >> 
> >> 
> >> Estoy empezando a usar tkinter. Tengo dos problemas:
> >> 1) no se como sacar la información del formulario. El caso es que tengo una funcion que si lo recoge pero no lo retorna. No llego a entender lo que pasa. 
> >> 
> >> 2) Después, al cerrar la venta, me muestra este error la consola: 
> >> result = textExample.get("1.0", "end")
> >> File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/tkinter/__init__.py", line 3706, in get
> >> return self.tk.call(self._w, 'get', index1, index2)
> >> _tkinter.TclError: invalid command name ".!text"
> >> 
> >> 
> >> 
> >> El código es este:
> >> import tkinter as tk
> >> 
> >> root = tk.Tk()
> >> root.geometry("600x400")
> >> 
> >> ​
> >> def getTextInput():
> >> 	result = textExample.get("1.0", "end")
> >> 	#print(result) # —> si le queto el comentario si me lo imprime
> >> 	 return result
> >> 	
> >> textExample = tk.Text(root, height=10)
> >> textExample.pack()
> >> btnRead = tk.Button(root, height=2, width=50, text="Introducir en la bbdd", command=getTextInput)
> >> 
> >> btnRead.pack()
> >> ​
> >> root.mainloop()
> >> 
> >> noticia = getTextInput()
> >> print(noticia)
> >> 
> >> 
> >> Muchísimas gracias a todos,
> >> 
> >> Saludos,
> >> 
> >> --
> >> Javier Pérez
> >> http://es.linkedin.com/in/javierperez1
> >> http://www.perasalvino.es/
> >> 
> >> 
> >> 
> >> 
> >> _______________________________________________
> >> Python-es mailing list
> >> Python-es en python.org
> >> https://mail.python.org/mailman/listinfo/python-es  
> > _______________________________________________
> > Python-es mailing list
> > Python-es en python.org
> > https://mail.python.org/mailman/listinfo/python-es  
> 


Más información sobre la lista de distribución Python-es