[Python-es] Static Variables Python Qt

revxfire en gmail.com revxfire en gmail.com
Mie Sep 25 19:54:53 CEST 2013


Lo que planteas ya lo he intentado pero en pyqt al llamar a wClientes.show() 
sigue la ejecucion del evento a un despues de mostrar la ventana, por lo que 
se ejecutaria el getCliente(), antes de que los QLineEdit estuviesen llenos, 
ese es exactamente mi problema,  asi que debe haber una forma o una Signal que 
se lea desde wFactura que le la destruccion(o exactamente antes de eso) del 
wCliente  del formulario vClientes que ejecute el el setCliente del otro 
formulario.

Saludos

El Mié 25 Sep 2013 12:20:54 Carlos Zuniga escribió:
> 2013/9/25  <revxfire en gmail.com>:
> > Buenas el caso es que estoy desarrollando un pequeño sistema
> > administrativo
> > en python + qt, el problema viene dado por esto:
> > 
> > Tengo una class "MainWindow.py"  este lo tengo trabajando como Mdi, por lo
> > que tengo dentro un MDI AREA, y activo el resto de las
> > ventanas(Clientes,Facturacion,Presupuesto) administrativos añadiendo las
> > ventanas al mdi area asi:
> > 
> > @pyqtSlot()
> > 
> >    def on_btnClientes_clicked(self):
> >       wClientes = VClientes()
> >       self.mdiArea.addSubWindow(wClientes)
> >       wClientes.show()
> > 
> > Donde VClientes es la class de la ventana de administracion de clientes.
> > Aqui viene el problema, yo quiero que desde la class VClientes leer o
> > escribir en los QLineEdit de VFactura(Ventana de facturacionl), la
> > estructura seria asi:
> > 
> > Nombre Class
> > VMainWindow.
> > VFactura
> > VClientes.
> > 
> > EL caso seria por ejemplo que en caso del el cliente no existir, se abre
> > la
> > ventana de insersion de clientes, usando el codigo arriba escrito, pero
> > que al momoento de que VCLientes cumpla su funcion ademas modifique los
> > lineEdit que estan en Vfactura(Que es la class que llamo a VClientes).
> > 
> > En java usaria variables Static y podria modificar las propiedades de la
> > class principal desde una clase child, pero aca en python ni idea como
> > hacerlo.
> 
> Qué feo, en serio hacen así en Java? :^)
> 
> Podrías añadir un método a tu clase VClientes que devuelva un objeto
> cliente y luego un método en tu clase VFactura que coja al objeto
> cliente y rellene sus campos. Queda más limpio y dejas que cada clase
> se ocupe de sus propios asuntos.
> 
> 
>     @pyqtSlot()
>     def on_btnClientes_clicked(self):
>         wClientes = VClientes()
>         self.mdiArea.addSubWindow(wClientes)
>         wClientes.show()
>         cliente = wClientes.getClient()
>         self.setCliente(cliente)
> 
> 
> Saludos


Más información sobre la lista de distribución Python-es