Last edited 3 months ago

How to install a simple web browser: Difference between revisions


Latest revision as of 17:20, 12 December 2024


A simple web browser, based on Qt5, can be easily installed using the package repository for OpenSTLinux distribution service.

Solution: * Qt® Python™ application

1. python3-pyqt5

1.1. Installation

Board $> apt-get update
Board $> apt-get install python3-pyqt5

Create the web_browser.py script:

# web_browser.py
# Copyright (c) STMicroelectronics
# License: BSD-3-Clause
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtWebKitWidgets import *

import sys

class MainWindow(QMainWindow):

    def __init__(self, *args, **kwargs):
        super(MainWindow,self).__init__(*args, **kwargs)

        self.setWindowTitle(sys.argv[1])
        self.browser = QWebView()
        self.browser.setUrl( QUrl(sys.argv[1]) )
        self.setCentralWidget(self.browser)
        self.show()

QApplication.setAttribute(Qt.AA_ShareOpenGLContexts)
app = QApplication(sys.argv)
window = MainWindow()
app.exec_()

1.2. Usage

Board $> python3 web_browser.py  <url http://>

2. Display platform

Two solutions exist to display the web browser:

  • using eglfs
  • using Wayland

2.1. wayland

  • Weston must be started. If you have stopped it, you can restart Weston with the following command
Board $> systemctl start weston@root
  • Install qtwayland
Board $> apt-get install qtwayland
  • Set Wayland egl as display platform
Board $> export QT_QPA_PLATFORM=wayland-egl
  • And set the following variable
Board $> export QML2_IMPORT_PATH='/usr/lib/qt5/qml/'
  • Launch the Python web browser
Board $> python3 web_browser.py  <url http://> --qwindowgeometry <width>x<height>

2.2. eglfs

  • Stop the Weston application
Board $> systemctl stop weston@root
  • Set eglfs as display platform
Board $> export QT_QPA_PLATFORM=eglfs
  • And set the following variables
Board $> export QML2_IMPORT_PATH='/usr/lib/qt5/qml/'
Board $> export QT_QPA_EGLFS_ALWAYS_SET_MODE='1'
  • Launch the web browser
Board $> python3 web_browser.py  <url http://>