[Python-es] Static Variables Python Qt

Chema Cortes pych3m4 en gmail.com
Mie Sep 25 15:58:49 CEST 2013


El día 25 de septiembre de 2013 07:06,  <revxfire en gmail.com> escribió:
> 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.

Lo habitual es que la instancia de VClientes tenga una referencia a la
instancia de VFactura para hacer que ésta cambie de estado. Se la
pasas como argumento a la hora de crear la instancia de VClientes o la
puedes tener como variable global, siempre que sepas lo que éso
implica en cuanto a descontrolar quién la puede modificar.

En python, las variables estáticas es equivalente a usar variables
globales. En cuanto a los métodos estáticos, los puedes crear mediante
el decorador "staticmethod".

Por otro lado, te desaconsejo que sea la instancia VClientes la que
invoque directamente los métodos de VFactura. Necesitas estar seguro
que la instancia VFactura existe y puede responder a tus peticiones,
lo que hace complicarse todo demasiado. Búscate ejemplos de cómo se
trabaja con "señales" (signals) en Qt, además de que te simplificará
el diseño.


>
> Este es la primera cosa en python que no he logrado, en mi proceso de
> aprendizaje.
>
>
> Saludos, espero me puedan ayudar si tienen alguna duda con respecto a la
> descripción de mi pregunta por favor notificar
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/



-- 
Hyperreals *R  "Quarks, bits y otras criaturas infinitesimales":
http://ch3m4.org/blog
Buscador Python Hispano: http://ch3m4.org/python-es


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