Tutorial de PyQt, crear un navegador web. Parte 6
Posted on sáb 09 julio 2011 in Tutorial de Python y PyQt • 2 min read
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 sys
import sys
#De PyQt4 importar QtGui,QtCore y QtWebkit.
from PyQt4 import QtGui
from PyQt4 import QtCore
from PyQt4 import QtWebKit
class 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 alto
self.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 navegar
self.entradaUrl = QtGui.QLineEdit("http://www.debian.org.ve")
#Se crea el boton para ir a una pagina web
navegar = QtGui.QPushButton("Ir",self)
#Se crea el boton salir
quit = QtGui.QPushButton("Salir",self)
#Se crea el widget donde se mostrara la pagina web
self.web = QtWebKit.QWebView()
#Se habilita el atributo de plugins
self.web.settings().setAttribute(QtWebKit.QWebSettings.PluginsEnabled,True)
#Se carga la pagina de debian venezuela al inicio
self.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 datos
grid.addWidget(self.entradaUrl, 1, 0)
#Se agrega el boton navegar al lado de la
#entrada de datos
grid.addWidget(navegar,1,1)
#Se agrega el widget web
grid.addWidget(self.web,2,0)
#Se agrega el boton salir
grid.addWidget(quit,3,0)
#Se define el layout pasando la grilla
self.setLayout(grid)
#Se define la asociacion de segnales:
#Se define la segnal del boton quit, salir del programa
self.connect(quit, QtCore.SIGNAL('clicked()'),QtGui.qApp, QtCore.SLOT('quit()'))
#Se define la segnal del boton navegar, al darle clip se ejecuta el metodo navegar
self.connect(navegar,QtCore.SIGNAL('clicked()'),self.navegar)
#Se define la segnal de la entrada de datos
#Al darle enter se ejecuta el metodo navegar
self.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 principal
if __name__ == "__main__":
#Se instancia la clase QApplication
app = QtGui.QApplication(sys.argv)
#Se instancia el objeto QuitButton
qb = App()
#Se muestra la aplicacion
qb.show()
#Se sale de la aplicacion
sys.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:
===
¡Haz tu donativo! Si te gustó el artículo puedes realizar un donativo con Bitcoin (BTC) usando la billetera digital de tu preferencia a la siguiente dirección: 17MtNybhdkA9GV3UNS6BTwPcuhjXoPrSzV
O Escaneando el código QR desde billetera: