Continuando con los tutoriales de PyQt, ahora toca explicar como crear un navegador web.
La idea es tener una ventana de entrada de datos donde se escribe el url a navegar, a su lado se tiene un botón que ejecuta la navegación al url dado, luego abajo se tiene el widget de navegación y por último abajo se tiene un botón de salir. Se puede navegar también dando enter en el campo del url.
El widget nuevo que se está usando es:
- QWebView: Permite crear una vista de navegación web.
El código del programa se muestra a continuación:
#!/usr/bin/env python# -*- coding: utf-8 -*-#Se importa el modulo sysimport sys#De PyQt4 importar QtGui,QtCore y QtWebkit.from PyQt4 import QtGuifrom PyQt4 import QtCorefrom PyQt4 import QtWebKitclass App(QtGui.QWidget):def __init__(self,parent=None):QtGui.QWidget.__init__(self, parent)#Se define el tamano de la ventana# posicion en x,y, ancho y altoself.setGeometry(0, 50, 1024, 550)#Se le coloca un titulo a la ventana y se asocia un icono.self.setWindowTitle('Navegador')self.setWindowIcon(QtGui.QIcon('./openlogo-50.png'))#Se crea una entrada de datos donde se pasa el url a navegarself.entradaUrl = QtGui.QLineEdit("http://www.debian.org.ve")#Se crea el boton para ir a una pagina webnavegar = QtGui.QPushButton("Ir",self)#Se crea el boton salirquit = QtGui.QPushButton("Salir",self)#Se crea el widget donde se mostrara la pagina webself.web = QtWebKit.QWebView()#Se habilita el atributo de pluginsself.web.settings().setAttribute(QtWebKit.QWebSettings.PluginsEnabled,True)#Se carga la pagina de debian venezuela al inicioself.web.load(QtCore.QUrl("http://www.debian.org.ve"))#Empaquetamiento de los widgets en una cuadricula.grid = QtGui.QGridLayout()grid.setSpacing(10)#Se agrega la entrada de datosgrid.addWidget(self.entradaUrl, 1, 0)#Se agrega el boton navegar al lado de la#entrada de datosgrid.addWidget(navegar,1,1)#Se agrega el widget webgrid.addWidget(self.web,2,0)#Se agrega el boton salirgrid.addWidget(quit,3,0)#Se define el layout pasando la grillaself.setLayout(grid)#Se define la asociacion de segnales:#Se define la segnal del boton quit, salir del programaself.connect(quit, QtCore.SIGNAL('clicked()'),QtGui.qApp, QtCore.SLOT('quit()'))#Se define la segnal del boton navegar, al darle clip se ejecuta el metodo navegarself.connect(navegar,QtCore.SIGNAL('clicked()'),self.navegar)#Se define la segnal de la entrada de datos#Al darle enter se ejecuta el metodo navegarself.connect(self.entradaUrl,QtCore.SIGNAL('returnPressed()'),self.navegar)def navegar(self):#Navegar captura el texto de la entrada de datos#Y se carga la nueva pagina.url = self.entradaUrl.text()self.web.load(QtCore.QUrl("%s" %url))#Se ejecuta el programa principalif __name__ == "__main__":#Se instancia la clase QApplicationapp = QtGui.QApplication(sys.argv)#Se instancia el objeto QuitButtonqb = App()#Se muestra la aplicacionqb.show()#Se sale de la aplicacionsys.exit(app.exec_())
A continuación se muestra la ventana del navegador al ejecutar el programa:
La siguiente figura muestra que se escribe un url nuevo y se puede darle clip al botón ir o darle enter a la entrada de datos:


No hay comentarios:
Publicar un comentario en la entrada