[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