[pyar] duda de pyqt4, abriendo nuevas ventanas

Matias Graña matias.alejo en gmail.com
Lun Nov 29 10:22:07 ART 2010


> Te recomiendo cargar dinámicamente el .ui, es más fácil no tener que acordarse
> de recompilarlo y cambiás dos líneas de código nomás.

Hecho; el proceso ahora es más sencillo. Se pierde algo de
portabilidad por esto?


>> Con esto funciona tal cual quiero. Muchísimas gracias! Y también
>> muchísimas gracias por la explicación. Ahora me entra la duda: con la
>> excepción funcionaba porque volvía al main loop antes de que el GC
>> molestara? O porque el Traceback se guardaba una referencia a web y
>> entonces el GC no se la llevaba?
>
> Ni idea. Tendría que ver el caso que me estás diciendo.

Es el que había mandado al comienzo. Lo mando de nuevo, un poquito más
limpio con tus sugerencias y re-introduciendo el error de no tener una
referencia de la clase principal a web. En abrir_pagina() hay un
'assert 0==1' que permite ver la ventana de webkit. Si se lo borra, ya
no se alcanza a ver más.


from PyQt4 import QtCore, QtGui, QtWebKit

class Foo(QtGui.QMainWindow):
    def __init__(self, parent=None):
        QtGui.QMainWindow.__init__(self, parent)
        self.setObjectName("MainWindow")

    def keyPressEvent(self, event):
        key = event.key()
        if key == QtCore.Qt.Key_O:
            self.abrir_pagina()

    def abrir_pagina(self):
        web = QtWebKit.QWebView()
        web.load(QtCore.QUrl('http://google.com.ar'))
        web.show()
        assert 0==1

if __name__ == '__main__':
    app = QtGui.QApplication([])
    foo = Foo()
    foo.show()
    app.exec_()



More information about the pyar mailing list