[Python-es] Static Variables Python Qt

Carlos Zuniga carlos.zun en gmail.com
Mie Sep 25 19:20:54 CEST 2013


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
-- 
A menudo unas pocas horas de "Prueba y error" podrán ahorrarte minutos
de leer manuales.


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