[pyar] pyqt conexión con funciones importadas

Facundo Batista facundobatista en gmail.com
Mar Oct 1 15:48:11 -03 2019


El lun., 30 de sep. de 2019 a la(s) 23:28, Cristhian Martin
(cristhian en linuxar.com) escribió:

> funcion = getattr(modulo, cfg[5].replace('\n', ''))
> boton.clicked.connect(lambda: funcion(self.ui))

El problema es que armás N funciones para pasarles al
button.clicked.connect, y cada una de esas funciones al ejecutarse van
y resuleve "funcion", pero lo resuelven al ejecutarse, no al armarse
la función.

En otras palabras, todas las funciones que le pasaste al
button.clicked.connect al ejecutarse van y resuelven *a la misma*
función.

En general para solucionar este "problema" (bastante frecuente) es
hacer que "funcion" resuelva a algo que se guardó en la función que
armaste con lambda al momento de armarla. O sea, reemplazá esa linea
por algo como:

    boton.clicked.connect(lambda funcion=funcion: funcion(self.ui))

Y contanos.

Saludos,

-- 
.    Facundo

Blog: http://www.taniquetil.com.ar/plog/
PyAr: http://www.python.org.ar/
Twitter: @facundobatista


Más información sobre la lista de distribución pyar