[pyar] PyQt cargar interfaces de forma dinámica
Federico Apelhanz
elmaildejapel en gmail.com
Mar Jun 5 14:51:56 ART 2012
si!!!!!!!! me anduvo! jajaja en el main:
import sys
from PyQt4 import QtGui, QtCore
class MainWindow(QtGui.QMainWindow):
def __init__(self):
QtGui.QWidget.__init__(self)
from ui_MainWindow import Ui_MainWindow
self.ventana = Ui_MainWindow()
self.ventana.setupUi(self)
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) #creo la barra de menu, y le asigno los
eventos que crean las vistas de forma dinamica
ui.show()
sys.exit(app.exec_()) #main loop de la app
y dentro de ui_MainWindow cree:
class ComprobanteDeCompra(QtGui.QWidget):
def __init__(self):
QtGui.QWidget.__init__(self)
from ui_ComprobanteDeCompra import Ui_Form
self.ventana = Ui_Form()
self.ventana.setupUi(self)
después en el evento trigger del menú llamo a un método:
def cargarFormularioDeFormaDinamica(self):
nuevaVista = ComprobanteDeCompra()
global ui
ui.setCentralWidget(nuevaVista)
En fin, no se si hay una forma más prolija de hacerlo, pero quedo, por
cierto, re leyéndote, a lo que me referia que no podia pasarle parámetros
era al metodo al que conecto el evento:
anda:
MainWindow.connect(self.action,QtCore.SIGNAL('triggered()'),
self.cargarFormularioDeFormaDinamica)
no anda
MainWindow.connect(self.action,QtCore.SIGNAL('triggered()'),
self.cargarFormularioDeFormaDinamica(MainWindow)))
lo cual es medio choto si quiero tener métodos más genericos para los
eventos, porque me obliga a usar main window como global.
El 5 de junio de 2012 12:23, Roberto Alsina
<ralsina en netmanagers.com.ar>escribió:
> On 06/05/2012 12:15 PM, Federico Apelhanz wrote:
>
>> Bien, la opcion 2 es lo que estoy intentando hacer, (pero evidentemente
>> no me sale) o sea, yo cree la vista con el qdesigner, (seleccione
>> widget), despues lo converti a py y de ahí lo intento cargar:
>>
>> siendo ui mi mainwindow:
>>
>> from ui_VistaRandom import Ui_form
>> nuevaVista = Ui_form()
>> ui.setCentralWidget(**nuevaVista)
>>
>> eso no me anda, o mejor dicho, no se como debería hacerlo.
>>
>
> No tenes que usar los Ui_form directamente. Creá clases que los usen
> en setupUi y después instanciá esas clases.
>
> ______________________________**_________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/**listinfo/pyar<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/e014d71f/attachment.html>
More information about the pyar
mailing list