[pyar] PyQt cargar interfaces de forma dinámica

Federico Apelhanz elmaildejapel en gmail.com
Mar Jun 5 11:24:25 ART 2012


bueno, probando y jugando más, todo se resume a esto:
 esto no anda:
def main():
    app = QtGui.QApplication(sys.argv) #creamos la app, siempre se hace así.
    global ui
    ui = MainWindow() #creamos la MainWindow, pero todavía no la mostramos
    ui.ventana.setMenusBar(ui)
    ui.show()
    from ui_ComprobanteDeCompra import Ui_Form
    comprobanteForm = Ui_Form()
    comprobanteForm.setupUi(ui)
    sys.exit(app.exec_())

esto anda (más o menos, es como si cerrara y volviera a abrir la aplicación
lo cual no me gusta para nada):

def main():
    app = QtGui.QApplication(sys.argv) #creamos la app, siempre se hace así.
    global ui
    ui = MainWindow() #creamos la MainWindow, pero todavía no la mostramos
    ui.ventana.setMenusBar(ui)
    ui.show()
    ui.hide()
    from ui_ComprobanteDeCompra import Ui_Form
    comprobanteForm = Ui_Form()
    comprobanteForm.setupUi(ui)
    ui.show()
    sys.exit(app.exec_())


pareciera que qt no refresca la vista, ¿hay alguna manera de forzarlo a
hacerlo que no sea TAN crota?
El 5 de junio de 2012 02:10, Federico Apelhanz
<elmaildejapel en gmail.com>escribió:

> Bueno limpiando y resumiendo mi código, creo que encontré mi bug, igual
> les paso el ejemplo:
>
>
> el main.py http://pastebin.com/scYWb77K
>
> ui_MainWindow: http://pastebin.com/mJ1yMkkk
>
> ui_ComprobanteDeCompra :http://pastebin.com/XYb3gKvb
>
> resumiendo, en main creaba mi mainwindow (llamemosle UI) definido en
> ui_MainWindow, ahí además tenia una método que generaba un par de widgets y
> conectaba los mismos (a traves de slots and signals) con otros métodos que
> se encargaban de cargar los formularios estos, y ahí es donde viene el
> problema, esas funciones no pueden recibir parámetros! (o al menos no se
> como hacer para pasárselos, cuando hago un connect, siempre me tira error)
> así que siempre que intentaba cargar mi form en el UI lo estaba cargando en
> cualquier lado, en fin a esta hora ya estoy medio quemado, asi que
> soluciones son bienvenidas (de todas formas esto no resuelve por que cuando
> uso uic las ventanas se crean como si fueran programas aparte, y no mueren
> cuando mato my app principal)
>
> por cierto me gusto el pycante ese, en particular para tener el código más
> ordenado
>
> El 4 de junio de 2012 22:53, Juan BC <jbc.develop en gmail.com> escribió:
>
> El día 4 de junio de 2012 22:39, Federico Apelhanz
>> <elmaildejapel en gmail.com> escribió:
>> > Buenas, les cuento, tengo mi app en PyQt y tengo una mainWindow, y a su
>> ves
>> > tengo vaaarios formularios hechos con Qtdesigner (creados como
>> QWidgets), lo
>> > que me gustaría es poder de alguna forma cargarlos en el central
>> widget, o
>> > en algún lado dentro de la ventana principal (mainWindow), por ahora lo
>> que
>> > encontré es el loadUI pero cuando lo uso me carga una ventana aparte (de
>> > yapa si cierro la ventana principal esta ultima sigue viva ¿?), probé
>> > pasando el archivo ui a py, pero cuando hago esto:
>> >
>> > from formPython import Ui_Form
>> > nuevaInterfaz = Ui_Form()
>> > nuevaInterfaz.setupUi(self.Ui)
>> >
>> > no me carga nada, pese a que cuando hago nuevaInterfaz.children() veo
>> que
>> > están todos los widgets ahi, tomando mate (¿?) haciendo nada, ¿Alguna
>> idea
>> > de que puedo estar haciendo mal, o que moco me mande? porque si hago eso
>> > mismo en la clase donde creo la mainWindow, los muestra... gracias! (si
>> no
>> > se entiende les paso un ejemplo por pastebin)
>> >
>> >
>> > _______________________________________________
>> > pyar mailing list pyar en python.org.ar
>> > http://listas.python.org.ar/listinfo/pyar
>> >
>> > PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>> >
>> > La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> > Argentina - http://www.usla.org.ar
>>
>> te simplifico un poco la vida
>> http://jbcabral.com/2011/11/04/pycante-0-2-1c/
>>
>> te acordaste de poner algo similar a esto
>>
>> app = QtGui.QApplication(sys.argv)
>> nuevaInterfaz = Ui_Form()
>> nuevaInterfaz.setupUi(self.Ui)
>> sys.exit(app.exec_())
>>
>> --
>> Juan B Cabral
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>>
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20120605/98b508b5/attachment.html>


More information about the pyar mailing list