Descarga: navegador-web-pyqt5.zip.
Código de fuente de un navegador web simple usando PyQt 5. Adaptado del original Navegador web simple con PyQt 4.
#!/usr/bin/env python # -*- coding: utf-8 -*- # # Simple navegador web con PyQt 5. # # Copyright 2018 Recursos Python - www.recursospython.com # # import sys from PyQt5.QtCore import QUrl from PyQt5.QtWidgets import QApplication, QHBoxLayout, QLineEdit from PyQt5.QtWidgets import QMainWindow, QPushButton, QVBoxLayout from PyQt5.QtWidgets import QWidget from PyQt5.QtWebEngineWidgets import QWebEngineView class Widgets(QMainWindow): def __init__(self): QMainWindow.__init__(self) self.setWindowTitle("Simple Web Browser") self.widget = QWidget(self) # Widget para el navegador self.webview = QWebEngineView() self.webview.load(QUrl("https://www.recursospython.com/")) self.webview.urlChanged.connect(self.url_changed) # Ir hacia atrás self.back_button = QPushButton("<") self.back_button.clicked.connect(self.webview.back) # Ir hacia adelante self.forward_button = QPushButton(">") self.forward_button.clicked.connect(self.webview.forward) # Actualizar la página self.refresh_button = QPushButton("Actualizar") self.refresh_button.clicked.connect(self.webview.reload) # Barra de direcciones self.url_text = QLineEdit() # Cargar la página actual self.go_button = QPushButton("Ir") self.go_button.clicked.connect(self.url_set) self.toplayout = QHBoxLayout() self.toplayout.addWidget(self.back_button) self.toplayout.addWidget(self.forward_button) self.toplayout.addWidget(self.refresh_button) self.toplayout.addWidget(self.url_text) self.toplayout.addWidget(self.go_button) self.layout = QVBoxLayout() self.layout.addLayout(self.toplayout) self.layout.addWidget(self.webview) self.widget.setLayout(self.layout) self.setCentralWidget(self.widget) def url_changed(self, url): """Actualizar la barra de direcciones""" self.url_text.setText(url.toString()) def url_set(self): """Acceder a un nuevo URL""" self.webview.setUrl(QUrl(self.url_text.text())) if __name__ == "__main__": app = QApplication(sys.argv) window = Widgets() window.show() sys.exit(app.exec_())
Andres says:
Buenos días,
Antes de nada, muchas gracias por el aporte.
Cuando ejecuto el código me aparece el siguiente error:
from PyQt5.QtWebEngineWidgets import QWebEngineView
ImportError: QtWebEngineWidgets must be imported before a QCoreApplication instance is created
Saludos
Recursos Python says:
Hola. Es raro el error. ¿Estás ejecutando exactamente el mismo código o modificaste algo?
Saludos
Andrés says:
Hoa. Si he probado exactamente el mismo código, también he probado con otros ejemplos parecidos y me aparece el mismo error, además intentado cambiar el orden al importar pero tampoco se soluciona así.
Recursos Python says:
¿Podés crear un tema en el foro así lo vemos mejor? Con imágenes y toda la información sobre tu sistema que puedas aportar. Saludos
Pablo says:
Hola! Tengo un problema: Cuando abro el navegador está todo bien. Pero cuando quiero ir a un sitio, la barra de direcciones tiene «about:blank» y la página esta totalmente en blanco. Muchas gracias por leer =)
Recursos Python says:
Hola, ¿en qué sistema operativo estás ejecutando? Saludos
Nigh says:
Hola buenas, tengo dos de preguntas espero que algun alma generosa pueda ayudarme :), mira soy nuevo en python y recien descubri esta pagina, muy didicactica por cierto y me encanta la interfaz que tiene, y queria descargarme este codigo para probarlo en mi pc, me he descargado el codigo, he instalado mediante el comando pip3 install PyQt5 el modulo para arrancar el programa pero me sale este error:
from PyQt5.QtWebEngineWidgets import QWebEngineView
ModuleNotFoundError: No module named ‘PyQt5.QtWebEngineWidgets’
Por cierto tengo windows 10.
Mi otra pregunta seria: Donde puedo encontrar informacion para trabajar con este modulo y poder crear cosas como este navegador por ejemplo de ante mano muchas gracias bye. :).
Recursos Python says:
Hola. ¿Qué versión de Python 3 estás ejecutando? ¿Tu versión de Windows es de 32 bit?
Nigh says:
Python 3.6.5 Windows 10 64bit
Recursos Python says:
Intentá instalando una versión anterior de PyQt:
pip3 uninstall PyQt5
pip3 install PyQt5==5.9
Nigh says:
Funciono correctamente muchas gracias por tomarte la molestia ayudarme :).
Recursos Python says:
Me alegro, de nada!