[pyar] PyQt cargar interfaces de forma dinámica

Federico Apelhanz elmaildejapel en gmail.com
Mar Jun 5 11:49:58 ART 2012


Claro, asi como lo decis lo hice andar, el problema (o lo que quiero hacer)
es ir cargando distintas vistas(Ui_forms) en tiempo de ejecución, no se si
entiende, o sea por ej, en la barra de menu, tengo 50 opciones, y por cada
una tengo una vista distinta, lo que quiero, es que cuando me clicken una
opción, me cargue la vista correspondiente

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?
>>
>
> En general es muy sencillo. Si tenes el Ui_Form (que no lo importás
> adentro de main, eso es una chanchada), create una clase que herede de
> QMainWindow (supongo que tu MainWindow es eso), y después, en el __init__
> de esa clase (no en el main!):
>
>  class MainWindow(QtGui.QMainWindow):
>      def __init__(self):
>          QtGui.QMainWindow.__init__(self)
>
>          self.ui=Ui_Form()
>          self.ui.setupUi(self)
>
> Nota: si tenés un Ui_Form quiere decir que en designer creaste algo que no
> es un QMainWindow, y eso no va a andar bien jamás.
>
> Despues en main es esto nomás:
>
>
> def main():
>      app = QtGui.QApplication(sys.argv)
>      window=MainWindow()
>      window.show()
>      sys.exit(app.exec_())
>
> Si querés pasarle argumentos cuando creás tu MainWindow, los pasás, no hay
> ningún problema.
>
> _______________________________________________
> 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/1f710864/attachment.html>


More information about the pyar mailing list