[pyar] PyQt cargar interfaces de forma dinámica

Roberto Alsina ralsina en netmanagers.com.ar
Mar Jun 5 15:05:27 ART 2012


On 06/05/2012 02:51 PM, Federico Apelhanz wrote:
>
> En fin, no se si hay una forma más prolija de hacerlo, pero quedo, por
> cierto, re leyéndote, a lo que me referia que no podia pasarle
> parámetros era al metodo al que conecto el evento:
> anda:
> MainWindow.connect(self.action,QtCore.SIGNAL('triggered()'),
> self.cargarFormularioDeFormaDinamica)
>
> no anda
> MainWindow.connect(self.action,QtCore.SIGNAL('triggered()'),
> self.cargarFormularioDeFormaDinamica(MainWindow)))
>
> lo cual es medio choto si quiero tener métodos más genericos para los
> eventos, porque me obliga a usar main window como global.

Dos cosas: 1) Si podes. 2) Pensemos un poquito mas :-)

Primero lo segundo:

El problema es que no tenes bien separadas las cosas.

Ese metodo cargarFormularioDeFormaDinamica (que nombre feo! ;-), es de 
algún objeto. Si ese objeto no es MainWindow, pero necesita a MainWindow
para funcionar, deberia tener guardada una referencia. Si es MainWindow, 
bueno, usás self :-)

Ahora lo primero:

Bueno, mejor lo anterior a lo primero:

Usá la sintaxis nueva, por favor!

self.action.triggered.connect(self.cargarXXX)

Y para hacer lo que queres:

self.action.triggered.connect(lambda: self.cargarXXX(MainWindow))

Saludos,



More information about the pyar mailing list