Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
parametros llegan vacios en funcion
#1
hola a todos :
Estoy haciendo mis primeros pasos en Python :

Tengo este botón definido de esta manera:

boton1 = Button( second, width=10, text ="GUARDAR", command= GrabarAlta(entry1.get(), entry2.get())

la función que asocio en el command es GrabarAlta()

la cual está definida de esta manera:

def GrabarAlta(tcnombre, tcapellido):
    cnx = ClassMySql1.Conectar( 'root', '250417', 'localhost', 'empresa')
     
    if cnx is None :
      print( " conexion erronea " )
   
    else:
      print( " se puede genrar alta " )
      AltaDeEmpleado(cnx, 233655,tcnombre,tcapellido, "45666666", "RE" )

la función AltadeEmpleado esta definida de esta manera:

def AltaDeEmpleado(oCnx, tnnum, tcnombre, tcape, tcndoc, tctipodoc):
  ClassMySql1.AltaDeEmpleado( oCnx, tnnum, tcnombre, tcape, tcndoc, tctipodoc )

En el formulario completo el entry1 y entry2 con los datos de nombre y apellido
hago click en el botón y lo que me esta pasando es que los parámetros
de GrabarAlta(entry1.get(), entry2.get())  llegan vacíos
Probe de poner un nombre y apellido "harcodeado" como parámetro y el lata me la
da perfecta
Seguramente hay algo que estoy haciendo mal , pero no me doy cuenta que
desde ya gracias por la ayuda
Responder
#2
Hola.

entry1.get() y entry2.get() se ejecutan en el momento en que creás tu botón, esto es, cuando se inicia la aplicación, y al iniciarse la aplicación no contienen ningún texto, de ahí que lleguen vacíos. Lo correcto sería definir una función que obtenga el contenido de los entries al momento del clic, algo así:

Código:
def boton1_click():
    GrabarAlta(entry1.get(), entry2.get())

boton1 = Button( second, width=10, text ="GUARDAR", command=boton1_click)

O simplemente:

Código:
boton1 = Button( second, width=10, text ="GUARDAR", command= lambda: GrabarAlta(entry1.get(), entry2.get())

Saludos
¡No te pierdas nuestro curso oficial en Udemy para aprender Python, bases de datos SQL, orientación a objetos, tkinter y mucho más!

También ofrecemos consultoría profesional de desarrollo en Python para personas y empresas.
Responder
#3
gracias Francisco ! ahi lo pude resolver
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)