How to install a simple web browser

Revision as of 08:11, 14 December 2020 by Vincent Abriou (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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

2 solutions exist:

  • Qt® application
  • Qt® Python™ application

1 qt-wpe-simple-browser[edit]

1.1 Installation[edit]

 apt-get update
 apt-get install qt-wpe-simple-browser

1.2 Usage[edit]

 qt-wpe-simple-browser <url http://>

2 python3-pyqt5[edit]

2.1 Installation[edit]

 apt-get update
 apt-get install python3-pyqt5

Create the script:

# 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.browser = QWebView()
        self.browser.setUrl( QUrl(sys.argv[1]) )

app = QApplication(sys.argv)
window = MainWindow()

2.2 Usage[edit]

 python3  <url http://>

3 Display platform[edit]

Two solutions exist to display the web browser:

  • using eglfs
  • using Wayland

3.1 wayland[edit]

  • Weston must be started. If you have stopped it, you can restart Weston with the following command
 systemctl start weston@root
  • Install qtwayland
 apt-get install qtwayland
  • Set Wayland egl as display platform
 export QT_QPA_PLATFORM=wayland-egl
  • Launch the Python web browser
 qt-wpe-simple-browser <url http://>


 python3  <url http://>

3.2 eglfs[edit]

  • Stop the Weston application
 systemctl stop weston@root
  • Set eglfs as display platform
 export QT_QPA_PLATFORM=eglfs
  • And set the following variables
 export QML2_IMPORT_PATH='/usr/lib/qt5/qml/'
  • Launch the web browser
 qt-wpe-simple-browser <url http://>


 python3  <url http://>
Info white.png Information
With HDMI connection, it is advised to use the following kms eglfs_config.json config file in order to avoid cursor rendering issue.
  "device": "/dev/dri/card0",
  "hwcursor": false,
  "pbuffers": true,
  "outputs": [
      "name": "HDMI1",
      "mode": "1280x720"

Set Qt variable to use the json config file:

Board $> export QT_QPA_EGLFS_KMS_CONFIG='/home/root/eglfs_config.json'