elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Problema con tk.Entry y .Get()
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con tk.Entry y .Get()  (Leído 2,738 veces)
DeMoNcRaZy


Desconectado Desconectado

Mensajes: 420


$~*|_


Ver Perfil
Problema con tk.Entry y .Get()
« en: 27 Diciembre 2021, 20:31 pm »

Buenas,

Tengo un problema con obtener la información de un Entry (Tkinter), con .get()
Me he llevado todo el día mirando y probando ejemplos de internet, ya que hay mucha documentación sobre ello y eso solo obtener la información que se mete en el entry y mostrarlo, nada del otro mundo, pero después de todo el día probando cosas y ejemplos de internet, me lanza error al .get() y no se por que,

yo tengo esto:
Código
  1. def prueba():
  2.    ttk.Label(text=name).grid(column=3, row=70, sticky=W)
  3.    print (name)
  4.  
  5. v1 = StringVar()
  6.  
  7. e1 = ttk.Entry(root, textvariable=v1).grid(column=3, row=3, sticky=W)
  8.  
  9. def show():
  10.    print (e1.get(e1))
  11.    e1.delete(0, "end")
  12.  
  13.  
  14. ttk.Button(text="Obtener informacion", command=show).grid(column=3, row=5, sticky=W)
  15. ttk.Button(text="Abandonar", command=root.quit).grid(column=3, row=7, sticky=W)

Y lo que quiero es escribir en el entry(box) y al pulsar el botón mostrar lo que hay escrito. Nada del otro mundo, pero no se por que me da error,

este:
Código:
Exception in Tkinter callback
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/tkinter/__init__.py", line 1921, in __call__
    return self.func(*args)
  File "/Users/tomas/Downloads/RegistroDeTienda/main.py", line 124, in show
    print (e1.get(e1))
AttributeError: 'NoneType' object has no attribute 'get'
Exception in Tkinter callback
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/tkinter/__init__.py", line 1921, in __call__
    return self.func(*args)
  File "/Users/tomas/Downloads/RegistroDeTienda/main.py", line 124, in show
    print (e1.get(e1))
AttributeError: 'NoneType' object has no attribute 'get'


¿Cual es el problema una librería o como?

Una cosa más como podría hacer que una condición IF se ejecutara al pulsar el botón? ¿creo una clase y hay no?

Cualquier información adicional lo agradecería.

Saludos y FELIZ NAVIDAD


En línea

Esta página web no está disponible - Google Chrome
EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.068



Ver Perfil
Re: Problema con tk.Entry y .Get()
« Respuesta #1 en: 27 Diciembre 2021, 21:24 pm »

Saludos,

Al hacer el .grid pierdes el valor de retorno y tu variable queda vacía, debes hacer el .grid después de crear tu widget a no ser que no quieres guardar el widget en una variable por que no se requiere manipularla luego, por ejemplo con tu Button

Por otro lado también veo que has creado un StringVar() pero no lo estás usando donde debes o quizá no entiendo bien como lo quieres usarlo para mostrar su valor

Te presento el siguiente ejemplo funcional:

Código
  1. from tkinter import *
  2. root = Tk()
  3.  
  4. v1 = StringVar()
  5.  
  6. e1 = Entry(root, textvariable=v1)
  7. e1.grid(column=3, row=70, sticky=W)
  8.  
  9. def show() :
  10.  print(v1.get())
  11.  
  12. Button(text="Obtener info", command=show).grid(column=3, row=3, sticky=W)
  13.  
  14. root.mainloop()


En línea

DeMoNcRaZy


Desconectado Desconectado

Mensajes: 420


$~*|_


Ver Perfil
Re: Problema con tk.Entry y .Get()
« Respuesta #2 en: 28 Diciembre 2021, 20:13 pm »

Saludos,

Al hacer el .grid pierdes el valor de retorno y tu variable queda vacía, debes hacer el .grid después de crear tu widget a no ser que no quieres guardar el widget en una variable por que no se requiere manipularla luego, por ejemplo con tu Button

Por otro lado también veo que has creado un StringVar() pero no lo estás usando donde debes o quizá no entiendo bien como lo quieres usarlo para mostrar su valor

Te presento el siguiente ejemplo funcional:

Código
  1. from tkinter import *
  2. root = Tk()
  3.  
  4. v1 = StringVar()
  5.  
  6. e1 = Entry(root, textvariable=v1)
  7. e1.grid(column=3, row=70, sticky=W)
  8.  
  9. def show() :
  10.  print(v1.get())
  11.  
  12. Button(text="Obtener info", command=show).grid(column=3, row=3, sticky=W)
  13.  
  14. root.mainloop()

Muchas gracias, me ha resuelto el problema y ayudado a entenderlo.
Lo sencillo que era realmente, simplemente estaba mal colocado, pero aun así probe ejemplos de intenert y aun así me daba error, no llegaba a un punto.

Gracias por explicármelo, ya entiendo algo más a la hora de ejecución.

Nuevamente gracias y FELICES FIESTAS!!
En línea

Esta página web no está disponible - Google Chrome
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ASM: modificar el Entry Point?
Ingeniería Inversa
matthews_30 1 2,701 Último mensaje 25 Julio 2005, 20:17 pm
por Override
Change PE Entry Point [SRC] « 1 2 »
Programación Visual Basic
cobein 10 6,571 Último mensaje 4 Diciembre 2008, 14:50 pm
por ~~
Entry Point « 1 2 »
ASM
Eternal Idol 14 34,339 Último mensaje 6 Abril 2022, 16:48 pm
por fary
Entry point en VB apps
Ingeniería Inversa
Rvck 6 4,418 Último mensaje 16 Agosto 2013, 21:06 pm
por MCKSys Argentina
Tkinter UI de python 3.x, ayuda con Entry
Scripting
royer14 2 2,871 Último mensaje 8 Noviembre 2017, 13:38 pm
por royer14
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines