Registered User m (→python3-pyqt5) |
Registered User mNo edit summary Tag: 2017 source edit |
||
(5 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
<noinclude>{{ApplicableFor | |||
|MPUs list=STM32MP15x | |||
|MPUs checklist=STM32MP13x, STM32MP15x | |||
}}</noinclude> | |||
{{Important|'''The simple web browser, subject of this article, is not part of STM32MPU ecosystem releases, for which ST provides some support. <br>This article only provides, as example, some helper guidelines (tips): you may need to make some adaptations depending on your system setup.'''}} | |||
A simple web browser, based on Qt5, can be easily installed using the [[Package repository for OpenSTLinux distribution | package repository for OpenSTLinux distribution]] service. | |||
Solution: * Qt<sup>®</sup> Python™ application | |||
==python3-pyqt5== | ==python3-pyqt5== | ||
Line 64: | Line 61: | ||
* Set Wayland egl as display platform | * Set Wayland egl as display platform | ||
{{Board$}} export QT_QPA_PLATFORM=wayland-egl | {{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 | * Launch the Python web browser | ||
{{Board$}} python3 web_browser.py <url http://> --qwindowgeometry <width>x<height> | |||
{{Board$}} python3 web_browser.py <url http://> | |||
===eglfs=== | ===eglfs=== | ||
Line 78: | Line 75: | ||
{{Board$}} export QT_QPA_EGLFS_ALWAYS_SET_MODE='1' | {{Board$}} export QT_QPA_EGLFS_ALWAYS_SET_MODE='1' | ||
* Launch the web browser | * Launch the web browser | ||
{{Board$}} python3 web_browser.py <url http://> | {{Board$}} python3 web_browser.py <url http://> | ||
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://>
![]() |
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'
|