En este capítulo del tutorial de Python 3 más PyQt5 veremos como crear un simple navegador web creando un objeto de la clase QWebView en el Designer de Qt, esta clase pertenece al módulo QtWebKit.
El navegador además de contener un objeto WebView también contendrá un campo de búsqueda (Line Edit) y un botón (QPush Putton) para retroceder en el historial.
Más información de la clase QWebView: http://pyqt.sourceforge.net/Docs/PyQt4/qwebview.html
Más información de la clase QWebView: http://pyqt.sourceforge.net/Docs/PyQt4/qwebview.html
- Crearemos un formulario Main Window con Designer al cual llamaremos webkit.ui
- Agregaremos un objeto QWebView al cual llamaremos navegador y en la propiedad url desactivar la url que viene por defecto haciendo click en el botón que se encuentra más a la derecha.
- Agregaremos un objeto Line Edit al cual llamaremos url
- Agregraremos un objeto Push Button al cual llamaremos btn_back y le incluiremos el texto "back"
- Agrupar los elementos en un Lay Out in a Grid
webkit.pyw
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5.QtCore import QUrl
from PyQt5 import uic
class Navegador(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
uic.loadUi("webkit.ui", self)
#url por defecto
default_url = "http://google.com"
#Navegar a la url por defecto
self.navegador.setUrl(QUrl(default_url))
#Agregar al buscador la url por defecto
self.url.setText(default_url)
#Desactivar botón back hasta que no haya historial
self.btn_back.setEnabled(False)
#Retroceder a la página anterior
self.btn_back.clicked.connect(self.navegador.back)
self.url.returnPressed.connect(self.navegar)
self.navegador.urlChanged.connect(self.url_changed)
#Navegar a la url indicada en el buscador al pulsar la tecla enter
def navegar(self):
url = QUrl(self.url.text())
self.navegador.setUrl(url)
#Detectar el cambio de url de navegación
def url_changed(self):
#Crear un objeto de la página para acceder al historial
page = self.navegador.page()
history = page.history()
#Si hay historial activar el botón back
if history.canGoBack():
self.btn_back.setEnabled(True)
else:
self.btn_back.setEnabled(False)
#Agregar el cambio de url al campo de búsqueda
url = self.navegador.url()
self.url.setText(url.toString())
app = QApplication(sys.argv)
navegador = Navegador()
navegador.show()
app.exec_()

No hay comentarios:
Publicar un comentario