diff --git a/sw/supervision/python/doc_panel.py b/sw/supervision/python/doc_panel.py index a869f5a2ec..169fe80125 100644 --- a/sw/supervision/python/doc_panel.py +++ b/sw/supervision/python/doc_panel.py @@ -10,7 +10,7 @@ except ImportError: def setupUi(self, DocPanel): self.deactivated = True self.lay = QVBoxLayout(DocPanel) - label = QLabel("Please install 'python3-pyqt5.qtwebkit' to view the doc.", DocPanel) + label = QLabel("Please install 'PyQtWebEngine' to view the doc.", DocPanel) label.setTextInteractionFlags(Qt.TextSelectableByMouse | Qt.TextSelectableByKeyboard) self.lay.addWidget(label) diff --git a/sw/supervision/python/generated/ui_doc_viewer.py b/sw/supervision/python/generated/ui_doc_viewer.py index ca65d062fc..b2cab5ebe5 100644 --- a/sw/supervision/python/generated/ui_doc_viewer.py +++ b/sw/supervision/python/generated/ui_doc_viewer.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'ui/ui_doc_viewer.ui' # -# Created by: PyQt5 UI code generator 5.15.6 +# Created by: PyQt5 UI code generator 5.15.10 # # WARNING: Any manual changes made to this file will be lost when pyuic5 is # run again. Do not edit this file unless you know what you are doing. @@ -93,6 +93,7 @@ class Ui_DocPanel(object): self.layoutWidget3 = QtWidgets.QWidget(self.splitter_2) self.layoutWidget3.setObjectName("layoutWidget3") self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.layoutWidget3) + self.verticalLayout_2.setSizeConstraint(QtWidgets.QLayout.SetDefaultConstraint) self.verticalLayout_2.setContentsMargins(0, 0, 0, 0) self.verticalLayout_2.setObjectName("verticalLayout_2") self.horizontalLayout = QtWidgets.QHBoxLayout() @@ -118,8 +119,12 @@ class Ui_DocPanel(object): self.doc_source_combo.addItem("") self.horizontalLayout.addWidget(self.doc_source_combo) self.verticalLayout_2.addLayout(self.horizontalLayout) - self.webView = QtWebKitWidgets.QWebView(self.layoutWidget3) - self.webView.setUrl(QtCore.QUrl("about:blank")) + self.webView = QtWebEngineWidgets.QWebEngineView(self.layoutWidget3) + sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Expanding) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.webView.sizePolicy().hasHeightForWidth()) + self.webView.setSizePolicy(sizePolicy) self.webView.setObjectName("webView") self.verticalLayout_2.addWidget(self.webView) self.verticalLayout_5.addWidget(self.splitter_2) @@ -141,5 +146,5 @@ class Ui_DocPanel(object): self.doc_source_combo.setToolTip(_translate("DocPanel", "source")) self.doc_source_combo.setItemText(0, _translate("DocPanel", "Internet")) self.doc_source_combo.setItemText(1, _translate("DocPanel", "Local")) -from PyQt5 import QtWebKitWidgets +from PyQt5 import QtWebEngineWidgets from generated import resources_rc diff --git a/sw/supervision/python/paparazzicenter.py b/sw/supervision/python/paparazzicenter.py old mode 100755 new mode 100644 index 023c26187c..15c91be9c5 --- a/sw/supervision/python/paparazzicenter.py +++ b/sw/supervision/python/paparazzicenter.py @@ -299,9 +299,10 @@ class PprzCenter(QMainWindow, Ui_SupervisionWindow): self.statusBar().setStyleSheet("") -if __name__ == "__main__": - - app = QApplication(sys.argv) +if __name__ == "__main__": + # argument needed for the webviewer to work (documentation) + # https://stackoverflow.com/questions/75922410/pyqt5-qwebengineview-blank-window + app = QApplication(sys.argv + ["--disable-seccomp-filter-sandbox"]) timer = QtCore.QTimer() timer.start(100) diff --git a/sw/supervision/python/requirements.txt b/sw/supervision/python/requirements.txt index 92adab28d1..0a569d877c 100644 --- a/sw/supervision/python/requirements.txt +++ b/sw/supervision/python/requirements.txt @@ -1,3 +1,3 @@ PyQt5 +PyQtWebEngine lxml - diff --git a/sw/supervision/python/ui/ui_doc_viewer.ui b/sw/supervision/python/ui/ui_doc_viewer.ui index de74637f43..9c9e6e5990 100644 --- a/sw/supervision/python/ui/ui_doc_viewer.ui +++ b/sw/supervision/python/ui/ui_doc_viewer.ui @@ -117,6 +117,9 @@ + + QLayout::SetDefaultConstraint + @@ -170,11 +173,12 @@ - - - - about:blank - + + + + 0 + 0 + @@ -186,9 +190,10 @@ - QWebView + QWebEngineView QWidget -
QtWebKitWidgets/QWebView
+
qwebengineview.h
+ 1
diff --git a/sw/supervision/python/utils.py b/sw/supervision/python/utils.py index dc9088b8b0..8bfad9a6f7 100644 --- a/sw/supervision/python/utils.py +++ b/sw/supervision/python/utils.py @@ -74,7 +74,7 @@ def open_terminal(wd, command=None): terminal_emulator = get_settings().value("terminal_emulator", "", str) if terminal_emulator == "": terminal_emulator = "gnome-terminal" - os.system("{} --working-directory {}{}".format(terminal_emulator, wd, cmd)) + os.system("{}".format(terminal_emulator)) def get_settings() -> QSettings: