CEFPython: Integración de CEF (Chromium Embedded Framework) en Python

CEFPython: Integración de CEF (Chromium Embedded Framework) en Python

CEFPython es un proyecto de código abierto que proporciona enlaces de Python para el marco de trabajo de Chromium incrustado (CEF). CEF es un marco de trabajo de navegador web de código abierto que se utiliza en aplicaciones como Google Chrome, Opera y Vivaldi.

CEFPython permite a los desarrolladores de Python incrustar un navegador web Chromium en sus aplicaciones. Esto puede ser útil para una variedad de propósitos, como:

  • Crear una interfaz de usuario web basada en HTML, CSS y JavaScript.
  • Mostrar contenido web en una aplicación.
  • Desarrollar aplicaciones de escritorio híbridas que combinen código nativo y web.

En este tutorial, aprenderemos a integrar CEFPython en una aplicación Python.

Requisitos

Para seguir este tutorial, necesitarás lo siguiente:

  • Python 3.7 o posterior
  • CEFPython
  • Una IDE o editor de código de tu elección

Instalación de CEFPython

Para instalar CEFPython, puedes usar el administrador de paquetes de tu distribución Linux o el instalador de Python.

En Ubuntu:

sudo apt install python3-cefpython3

En Windows:

Descarga el instalador de Python desde el sitio web de CEFPython.

Ejemplo básico

Para crear una aplicación simple que incruste un navegador web Chromium, podemos usar el siguiente código:

Python
import cefpython3

def main():
    # Crea un navegador web Chromium.
    browser = cefpython3.CefBrowser()

    # Carga una página web en el navegador.
    browser.LoadUrl("https://www.google.com")

    # Muestra el navegador en la pantalla.
    browser.Show()

    # Espera a que el usuario cierre la aplicación.
    cefpython3.MessageLoop()

if __name__ == "__main__":
    main()

Este código crea un nuevo navegador web Chromium y lo carga con la página web de Google. El navegador se muestra en la pantalla y el usuario puede interactuar con él.

Controlando el navegador

Podemos controlar el navegador web Chromium utilizando las siguientes propiedades y métodos:

  • Url: La URL de la página web que se está cargando en el navegador.
  • IsLoading: Un booleano que indica si el navegador está cargando una página web.
  • GoBack: Vuelve a la página web anterior.
  • GoForward: Avanza a la siguiente página web.
  • Reload: Vuelve a cargar la página web actual.
  • Close: Cierra el navegador.

Por ejemplo, el siguiente código muestra cómo volver a la página web anterior:

Python
import cefpython3

def main():
    # Crea un navegador web Chromium.
    browser = cefpython3.CefBrowser()

    # Carga una página web en el navegador.
    browser.LoadUrl("https://www.google.com")

    # Espera a que el usuario haga clic en el botón "Atrás".
    while not browser.IsLoading():
        if browser.CanGoBack():
            browser.GoBack()

    # Muestra el navegador en la pantalla.
    browser.Show()

    # Espera a que el usuario cierre la aplicación.
    cefpython3.MessageLoop()

if __name__ == "__main__":
    main()

Más información

Para obtener más información sobre CEFPython, consulta la documentación: https://github.com/cztomczak/cefpython/wiki.

Conclusión

CEFPython es una herramienta poderosa que permite a los desarrolladores de Python incrustar un navegador web Chromium en sus aplicaciones. Con CEFPython, puedes crear aplicaciones de escritorio híbridas que combinen código nativo y web.