Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
- name: Dependencies [Ubuntu]
run: |
sudo apt update
sudo apt install -y pyqt5-dev-tools
sudo apt install -y pyqt6-dev-tools
- name: Generate python files
run: |
bash ./generate-ui.sh
Expand Down
27 changes: 22 additions & 5 deletions generate-ui.sh
Original file line number Diff line number Diff line change
@@ -1,13 +1,30 @@
#! /bin/bash
SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)

if command -v pyuic6 >/dev/null 2>&1; then
PYUIC_CMD=(pyuic6)
elif [ -x "${SCRIPT_DIR}/.venv/bin/pyuic6" ]; then
PYUIC_CMD=("${SCRIPT_DIR}/.venv/bin/pyuic6")
elif [ -x "${SCRIPT_DIR}/.venv/bin/python" ]; then
PYUIC_CMD=("${SCRIPT_DIR}/.venv/bin/python" -m PyQt6.uic.pyuic)
elif command -v python >/dev/null 2>&1; then
PYUIC_CMD=(python -m PyQt6.uic.pyuic)
elif command -v python3 >/dev/null 2>&1; then
PYUIC_CMD=(python3 -m PyQt6.uic.pyuic)
else
echo "Error: pyuic6 not found. Please install PyQt6 tools." >&2
exit 1
fi

echo "Generate the main window"
pyuic5 -o robot_log_visualizer/ui/autogenerated/visualizer.py robot_log_visualizer/ui/misc/visualizer.ui
"${PYUIC_CMD[@]}" -o robot_log_visualizer/ui/autogenerated/visualizer.py robot_log_visualizer/ui/misc/visualizer.ui

echo "Generate Additional windows"
pyuic5 -o robot_log_visualizer/ui/autogenerated/about.py robot_log_visualizer/ui/misc/about.ui
pyuic5 -o robot_log_visualizer/ui/autogenerated/set_robot_model.py robot_log_visualizer/ui/misc/set_robot_model.ui
"${PYUIC_CMD[@]}" -o robot_log_visualizer/ui/autogenerated/about.py robot_log_visualizer/ui/misc/about.ui
"${PYUIC_CMD[@]}" -o robot_log_visualizer/ui/autogenerated/set_robot_model.py robot_log_visualizer/ui/misc/set_robot_model.ui

echo "Generate tab"
pyuic5 -o robot_log_visualizer/ui/autogenerated/plot_tab.py robot_log_visualizer/ui/misc/plot_tab.ui
pyuic5 -o robot_log_visualizer/ui/autogenerated/video_tab.py robot_log_visualizer/ui/misc/video_tab.ui
"${PYUIC_CMD[@]}" -o robot_log_visualizer/ui/autogenerated/plot_tab.py robot_log_visualizer/ui/misc/plot_tab.ui
"${PYUIC_CMD[@]}" -o robot_log_visualizer/ui/autogenerated/video_tab.py robot_log_visualizer/ui/misc/video_tab.ui

echo "The ui is generated"
4 changes: 2 additions & 2 deletions robot_log_visualizer/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@
import sys

# GUI
from PyQt6.QtWidgets import QApplication
from robot_log_visualizer.ui.gui import RobotViewerMainWindow
from PyQt5.QtWidgets import QApplication

# Meshcat
from robot_log_visualizer.robot_visualizer.meshcat_provider import MeshcatProvider
Expand Down Expand Up @@ -36,7 +36,7 @@ def main():
# show the main window
gui.show()

return app.exec_()
return app.exec()


if __name__ == "__main__":
Expand Down
2 changes: 1 addition & 1 deletion robot_log_visualizer/plotter/pyqtgraph_viewer_canvas.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

import numpy as np
import pyqtgraph as pg # type: ignore
from PyQt5 import QtCore, QtWidgets # type: ignore
from PyQt6 import QtCore, QtWidgets # type: ignore

from robot_log_visualizer.plotter.color_palette import ColorPalette
from robot_log_visualizer.signal_provider.signal_provider import ProviderType
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import idyntree.swig as idyn
import numpy as np
from idyntree.visualize import MeshcatVisualizer
from PyQt5.QtCore import QMutex, QMutexLocker, QThread
from PyQt6.QtCore import QMutex, QMutexLocker, QThread

from robot_log_visualizer.utils.utils import PeriodicThreadState

Expand Down
2 changes: 1 addition & 1 deletion robot_log_visualizer/signal_provider/signal_provider.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import h5py
import idyntree.swig as idyn
import numpy as np
from PyQt5.QtCore import QMutex, QMutexLocker, QThread, pyqtSignal
from PyQt6.QtCore import QMutex, QMutexLocker, QThread, pyqtSignal

from robot_log_visualizer.utils.utils import PeriodicThreadState, RobotStatePath

Expand Down
12 changes: 5 additions & 7 deletions robot_log_visualizer/ui/autogenerated/about.py
Original file line number Diff line number Diff line change
@@ -1,26 +1,24 @@
# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'robot_log_visualizer/ui/misc/about.ui'
#
# Created by: PyQt5 UI code generator 5.15.6
# Created by: PyQt6 UI code generator 6.9.1
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# WARNING: Any manual changes made to this file will be lost when pyuic6 is
# run again. Do not edit this file unless you know what you are doing.


from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt6 import QtCore, QtGui, QtWidgets


class Ui_aboutWindow(object):
def setupUi(self, aboutWindow):
aboutWindow.setObjectName("aboutWindow")
aboutWindow.resize(541, 102)
aboutWindow.setMaximumSize(QtCore.QSize(541, 102))
self.centralwidget = QtWidgets.QWidget(aboutWindow)
self.centralwidget = QtWidgets.QWidget(parent=aboutWindow)
self.centralwidget.setObjectName("centralwidget")
self.horizontalLayout = QtWidgets.QHBoxLayout(self.centralwidget)
self.horizontalLayout.setObjectName("horizontalLayout")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2 = QtWidgets.QLabel(parent=self.centralwidget)
self.label_2.setEnabled(True)
self.label_2.setOpenExternalLinks(True)
self.label_2.setObjectName("label_2")
Expand Down
8 changes: 3 additions & 5 deletions robot_log_visualizer/ui/autogenerated/plot_tab.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'robot_log_visualizer/ui/misc/plot_tab.ui'
#
# Created by: PyQt5 UI code generator 5.15.6
# Created by: PyQt6 UI code generator 6.9.1
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# WARNING: Any manual changes made to this file will be lost when pyuic6 is
# run again. Do not edit this file unless you know what you are doing.


from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt6 import QtCore, QtGui, QtWidgets


class Ui_PlotTab(object):
Expand Down
64 changes: 31 additions & 33 deletions robot_log_visualizer/ui/autogenerated/set_robot_model.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'robot_log_visualizer/ui/misc/set_robot_model.ui'
#
# Created by: PyQt5 UI code generator 5.15.6
# Created by: PyQt6 UI code generator 6.9.1
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# WARNING: Any manual changes made to this file will be lost when pyuic6 is
# run again. Do not edit this file unless you know what you are doing.


from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt6 import QtCore, QtGui, QtWidgets


class Ui_setRobotModelDialog(object):
Expand All @@ -17,95 +15,95 @@ def setupUi(self, setRobotModelDialog):
setRobotModelDialog.resize(711, 363)
self.gridLayout = QtWidgets.QGridLayout(setRobotModelDialog)
self.gridLayout.setObjectName("gridLayout")
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
spacerItem = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
self.gridLayout.addItem(spacerItem, 1, 0, 1, 1)
self.buttonBox = QtWidgets.QDialogButtonBox(setRobotModelDialog)
self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.Close|QtWidgets.QDialogButtonBox.Save|QtWidgets.QDialogButtonBox.SaveAll)
self.buttonBox = QtWidgets.QDialogButtonBox(parent=setRobotModelDialog)
self.buttonBox.setOrientation(QtCore.Qt.Orientation.Horizontal)
self.buttonBox.setStandardButtons(QtWidgets.QDialogButtonBox.StandardButton.Close|QtWidgets.QDialogButtonBox.StandardButton.Save|QtWidgets.QDialogButtonBox.StandardButton.SaveAll)
self.buttonBox.setObjectName("buttonBox")
self.gridLayout.addWidget(self.buttonBox, 2, 0, 1, 1)
self.tabWidget = QtWidgets.QTabWidget(setRobotModelDialog)
self.tabWidget = QtWidgets.QTabWidget(parent=setRobotModelDialog)
self.tabWidget.setObjectName("tabWidget")
self.robot_tab = QtWidgets.QWidget()
self.robot_tab.setObjectName("robot_tab")
self.verticalLayout = QtWidgets.QVBoxLayout(self.robot_tab)
self.verticalLayout.setObjectName("verticalLayout")
self.frame = QtWidgets.QFrame(self.robot_tab)
self.frame.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.frame = QtWidgets.QFrame(parent=self.robot_tab)
self.frame.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel)
self.frame.setObjectName("frame")
self.gridLayout_2 = QtWidgets.QGridLayout(self.frame)
self.gridLayout_2.setObjectName("gridLayout_2")
self.robotModelToolButton = QtWidgets.QToolButton(self.frame)
self.robotModelToolButton = QtWidgets.QToolButton(parent=self.frame)
self.robotModelToolButton.setObjectName("robotModelToolButton")
self.gridLayout_2.addWidget(self.robotModelToolButton, 1, 1, 1, 1)
self.label = QtWidgets.QLabel(self.frame)
self.label = QtWidgets.QLabel(parent=self.frame)
self.label.setObjectName("label")
self.gridLayout_2.addWidget(self.label, 0, 0, 1, 1)
self.robotModelLineEdit = QtWidgets.QLineEdit(self.frame)
self.robotModelLineEdit = QtWidgets.QLineEdit(parent=self.frame)
font = QtGui.QFont()
font.setFamily("Ubuntu Mono")
self.robotModelLineEdit.setFont(font)
self.robotModelLineEdit.setObjectName("robotModelLineEdit")
self.gridLayout_2.addWidget(self.robotModelLineEdit, 1, 0, 1, 1)
self.verticalLayout.addWidget(self.frame)
self.frame_2 = QtWidgets.QFrame(self.robot_tab)
self.frame_2.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.frame_2 = QtWidgets.QFrame(parent=self.robot_tab)
self.frame_2.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel)
self.frame_2.setObjectName("frame_2")
self.gridLayout_3 = QtWidgets.QGridLayout(self.frame_2)
self.gridLayout_3.setObjectName("gridLayout_3")
self.packageDirToolButton = QtWidgets.QToolButton(self.frame_2)
self.packageDirToolButton = QtWidgets.QToolButton(parent=self.frame_2)
self.packageDirToolButton.setObjectName("packageDirToolButton")
self.gridLayout_3.addWidget(self.packageDirToolButton, 1, 1, 1, 1)
self.label_3 = QtWidgets.QLabel(self.frame_2)
self.label_3 = QtWidgets.QLabel(parent=self.frame_2)
self.label_3.setObjectName("label_3")
self.gridLayout_3.addWidget(self.label_3, 0, 0, 1, 1)
self.packageDirLineEdit = QtWidgets.QLineEdit(self.frame_2)
self.packageDirLineEdit = QtWidgets.QLineEdit(parent=self.frame_2)
font = QtGui.QFont()
font.setFamily("Ubuntu Mono")
self.packageDirLineEdit.setFont(font)
self.packageDirLineEdit.setObjectName("packageDirLineEdit")
self.gridLayout_3.addWidget(self.packageDirLineEdit, 1, 0, 1, 1)
self.verticalLayout.addWidget(self.frame_2)
self.frame_3 = QtWidgets.QFrame(self.robot_tab)
self.frame_3.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.frame_3 = QtWidgets.QFrame(parent=self.robot_tab)
self.frame_3.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel)
self.frame_3.setObjectName("frame_3")
self.formLayout_2 = QtWidgets.QFormLayout(self.frame_3)
self.formLayout_2.setObjectName("formLayout_2")
self.label_5 = QtWidgets.QLabel(self.frame_3)
self.label_5 = QtWidgets.QLabel(parent=self.frame_3)
self.label_5.setObjectName("label_5")
self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.LabelRole, self.label_5)
self.frameNameComboBox = QtWidgets.QComboBox(self.frame_3)
self.formLayout_2.setWidget(0, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_5)
self.frameNameComboBox = QtWidgets.QComboBox(parent=self.frame_3)
self.frameNameComboBox.setMaxVisibleItems(5)
self.frameNameComboBox.setObjectName("frameNameComboBox")
self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.SpanningRole, self.frameNameComboBox)
self.formLayout_2.setWidget(1, QtWidgets.QFormLayout.ItemRole.SpanningRole, self.frameNameComboBox)
self.verticalLayout.addWidget(self.frame_3)
self.tabWidget.addTab(self.robot_tab, "")
self.mischellanea_tab = QtWidgets.QWidget()
self.mischellanea_tab.setObjectName("mischellanea_tab")
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.mischellanea_tab)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.frame_4 = QtWidgets.QFrame(self.mischellanea_tab)
self.frame_4.setFrameShape(QtWidgets.QFrame.StyledPanel)
self.frame_4.setFrameShadow(QtWidgets.QFrame.Raised)
self.frame_4 = QtWidgets.QFrame(parent=self.mischellanea_tab)
self.frame_4.setFrameShape(QtWidgets.QFrame.Shape.StyledPanel)
self.frame_4.setFrameShadow(QtWidgets.QFrame.Shadow.Raised)
self.frame_4.setObjectName("frame_4")
self.gridLayout_4 = QtWidgets.QGridLayout(self.frame_4)
self.gridLayout_4.setObjectName("gridLayout_4")
self.label_2 = QtWidgets.QLabel(self.frame_4)
self.label_2 = QtWidgets.QLabel(parent=self.frame_4)
self.label_2.setObjectName("label_2")
self.gridLayout_4.addWidget(self.label_2, 0, 0, 1, 1)
self.arrowScaling_lineEdit = QtWidgets.QLineEdit(self.frame_4)
self.arrowScaling_lineEdit = QtWidgets.QLineEdit(parent=self.frame_4)
self.arrowScaling_lineEdit.setEnabled(False)
self.arrowScaling_lineEdit.setReadOnly(False)
self.arrowScaling_lineEdit.setClearButtonEnabled(False)
self.arrowScaling_lineEdit.setObjectName("arrowScaling_lineEdit")
self.gridLayout_4.addWidget(self.arrowScaling_lineEdit, 0, 1, 1, 1)
self.arrowScaling_checkBox = QtWidgets.QCheckBox(self.frame_4)
self.arrowScaling_checkBox = QtWidgets.QCheckBox(parent=self.frame_4)
self.arrowScaling_checkBox.setChecked(True)
self.arrowScaling_checkBox.setTristate(False)
self.arrowScaling_checkBox.setObjectName("arrowScaling_checkBox")
self.gridLayout_4.addWidget(self.arrowScaling_checkBox, 0, 2, 1, 1)
self.verticalLayout_2.addWidget(self.frame_4)
spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.Expanding)
spacerItem1 = QtWidgets.QSpacerItem(20, 40, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Expanding)
self.verticalLayout_2.addItem(spacerItem1)
self.tabWidget.addTab(self.mischellanea_tab, "")
self.gridLayout.addWidget(self.tabWidget, 0, 0, 1, 1)
Expand Down
12 changes: 5 additions & 7 deletions robot_log_visualizer/ui/autogenerated/video_tab.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'robot_log_visualizer/ui/misc/video_tab.ui'
#
# Created by: PyQt5 UI code generator 5.15.6
# Created by: PyQt6 UI code generator 6.9.1
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# WARNING: Any manual changes made to this file will be lost when pyuic6 is
# run again. Do not edit this file unless you know what you are doing.


from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt6 import QtCore, QtGui, QtWidgets


class Ui_VideoTab(object):
Expand All @@ -17,7 +15,7 @@ def setupUi(self, VideoTab):
VideoTab.resize(400, 300)
self.horizontalLayout = QtWidgets.QHBoxLayout(VideoTab)
self.horizontalLayout.setObjectName("horizontalLayout")
self.webcamView = QVideoWidget(VideoTab)
self.webcamView = QVideoWidget(parent=VideoTab)
self.webcamView.setObjectName("webcamView")
self.horizontalLayout.addWidget(self.webcamView)

Expand All @@ -27,4 +25,4 @@ def setupUi(self, VideoTab):
def retranslateUi(self, VideoTab):
_translate = QtCore.QCoreApplication.translate
VideoTab.setWindowTitle(_translate("VideoTab", "Form"))
from PyQt5.QtMultimediaWidgets import QVideoWidget
from PyQt6.QtMultimediaWidgets import QVideoWidget
Loading
Loading