Commit 98c5a6b6 authored by Pierre-Antoine Rouby's avatar Pierre-Antoine Rouby
Browse files

Plot: More flexible matplotlib toolbar.

Showing with 79 additions and 55 deletions
+79 -55
...@@ -191,7 +191,8 @@ class Ui_MainWindow(object): ...@@ -191,7 +191,8 @@ class Ui_MainWindow(object):
self.canvas_1.setObjectName("canvas_1") self.canvas_1.setObjectName("canvas_1")
self.toolbar_1 = navigation_toolbar_2qt.PamHyrNavigationToolbar2QT( self.toolbar_1 = navigation_toolbar_2qt.PamHyrNavigationToolbar2QT(
self.canvas_1, self.centralwidget self.canvas_1, self.centralwidget,
items = ["home", "zoom", "save", "iso", "back/forward", "move"]
) )
self.verticalLayout_canvas_1.addWidget(self.toolbar_1) self.verticalLayout_canvas_1.addWidget(self.toolbar_1)
...@@ -207,7 +208,8 @@ class Ui_MainWindow(object): ...@@ -207,7 +208,8 @@ class Ui_MainWindow(object):
self.canvas_2.setObjectName("canvas_2") self.canvas_2.setObjectName("canvas_2")
self.toolbar_2 = navigation_toolbar_2qt.PamHyrNavigationToolbar2QT( self.toolbar_2 = navigation_toolbar_2qt.PamHyrNavigationToolbar2QT(
self.canvas_2, self.centralwidget self.canvas_2, self.centralwidget,
items = ["home", "zoom", "save", "iso", "back/forward", "move"]
) )
self.verticalLayout_canvas_2.addWidget(self.toolbar_2) self.verticalLayout_canvas_2.addWidget(self.toolbar_2)
...@@ -222,7 +224,8 @@ class Ui_MainWindow(object): ...@@ -222,7 +224,8 @@ class Ui_MainWindow(object):
self.canvas_3.setObjectName("canvas_3") self.canvas_3.setObjectName("canvas_3")
self.toolbar_3 = navigation_toolbar_2qt.PamHyrNavigationToolbar2QT( self.toolbar_3 = navigation_toolbar_2qt.PamHyrNavigationToolbar2QT(
self.canvas_3, self.centralwidget self.canvas_3, self.centralwidget,
items = ["home", "zoom", "save", "iso", "back/forward", "move"]
) )
self.verticalLayout_canvas_3.addWidget(self.toolbar_3) self.verticalLayout_canvas_3.addWidget(self.toolbar_3)
......
...@@ -38,70 +38,91 @@ class PamHyrNavigationToolbar2QT(NavigationToolbar2QT): ...@@ -38,70 +38,91 @@ class PamHyrNavigationToolbar2QT(NavigationToolbar2QT):
""" """
isometric_signal = pyqtSignal(str) isometric_signal = pyqtSignal(str)
def __init__(self, canvas, parent): def __init__(self, canvas, parent, items = ["home", "move", "zoom", "save"]):
""" """
Args: Args:
canvas: canvas de matplotlib canvas: canvas de matplotlib
parent: parent du canvas parent: parent du canvas
""" """
self.my_canvas = canvas self.my_canvas = canvas
self.toolitems = [
(None, None, None, None),
('Home', _translate("Toolbar", 'Vue originale'), 'home', 'home'),
(None, None, None, None),
('Back', _translate("Toolbar", 'Retour à la vue précédente'), 'back', 'back'),
('Forward', _translate("Toolbar", 'Passer à la vue suivante'), 'forward', 'forward'),
(None, None, None, None),
('Pan', _translate( self._items = items
"Toolbar", self.toolitems = [
'Panoramique des axes avec la souris gauche, zoom avec la droite'
), 'move', 'pan'),
(None, None, None, None),
('Zoom', _translate("Toolbar", 'Zoom'), 'zoom_to_rect', 'zoom'),
(None, None, None, None),
('Isometric_view', _translate(
"Toolbar", 'Vue isométrique (Shift+W)'
), '', 'isometric_view'),
(None, None, None, None),
('GlobalView', _translate(
"Toolbar", 'Vue globale automatique (Shift+X)'
), '', 'non_isometric_view'),
(None, None, None, None),
('Save', _translate(
"Toolbar", 'Enregistrer la figure'
), 'filesave', 'save_figure'),
(None, None, None, None), (None, None, None, None),
] ]
icons = []
if "home" in items:
self.toolitems.append(('Home', _translate("Toolbar", 'Default view'), 'home', 'home'))
self.toolitems.append((None, None, None, None))
if "back/forward" in items:
self.toolitems.append(('Back', _translate("Toolbar", 'Back to previous view'), 'back', 'back'))
self.toolitems.append(('Forward', _translate("Toolbar", 'Return to next view'), 'forward', 'forward'))
self.toolitems.append((None, None, None, None))
if "move" in items:
self.toolitems.append(
('Pan', _translate(
"Toolbar",
'Axes panoramic'
), 'move', 'pan'))
self.toolitems.append((None, None, None, None))
if "zoom" in items:
self.toolitems.append(('Zoom', _translate("Toolbar", 'Zoom'), 'zoom_to_rect', 'zoom'))
self.toolitems.append((None, None, None, None))
icon_zoom = QtGui.QIcon()
icon_zoom.addPixmap(QtGui.QPixmap(
f"{os.path.dirname(os.path.dirname(file_path))}/resources/icons/zoom.png"
))
icons.append(("zoom",icon_zoom))
if "iso" in items:
self.toolitems.append(
('Isometric_view', _translate(
"Toolbar", 'Isometric view (Shift+W)'
), '', 'isometric_view')
)
self.toolitems.append((None, None, None, None))
self.toolitems.append(
('GlobalView', _translate(
"Toolbar", 'Auto scale view (Shift+X)'
), '', 'non_isometric_view')
)
self.toolitems.append((None, None, None, None)),
icon_btn_isometric_view = QtGui.QIcon()
icon_btn_isometric_view.addPixmap(
QtGui.QPixmap(f"{os.path.dirname(os.path.dirname(file_path))}/resources"
f"/icons/zoom_fit_11.png"))
icon_btn_global_view = QtGui.QIcon()
icon_btn_global_view.addPixmap(
QtGui.QPixmap(f"{os.path.dirname(os.path.dirname(file_path))}/resources/icons"
f"/zoom_fit.png"))
icons.append(("isometric_view", icon_btn_isometric_view))
icons.append(("non_isometric_view", icon_btn_global_view))
if "save" in items:
self.toolitems.append(
('Save', _translate(
"Toolbar", 'Save the figure'
), 'filesave', 'save_figure')
)
self.toolitems.append((None, None, None, None))
NavigationToolbar2QT.__init__(self, canvas, parent) NavigationToolbar2QT.__init__(self, canvas, parent)
btn_size = QSize(30, 30) btn_size = QSize(30, 30)
icon_zoom = QtGui.QIcon()
icon_zoom.addPixmap(QtGui.QPixmap(
f"{os.path.dirname(os.path.dirname(file_path))}/resources/icons/zoom.png"
))
icon_btn_isometric_view = QtGui.QIcon()
icon_btn_isometric_view.addPixmap(
QtGui.QPixmap(f"{os.path.dirname(os.path.dirname(file_path))}/resources"
f"/icons/zoom_fit_11.png"))
icon_btn_global_view = QtGui.QIcon()
icon_btn_global_view.addPixmap(
QtGui.QPixmap(f"{os.path.dirname(os.path.dirname(file_path))}/resources/icons"
f"/zoom_fit.png"))
actions = self.findChildren(QAction) actions = self.findChildren(QAction)
self._actions["zoom"].setIcon(icon_zoom)
self._actions["isometric_view"].setIcon(icon_btn_isometric_view) for a, i in icons:
self._actions["non_isometric_view"].setIcon(icon_btn_global_view) self._actions[a].setIcon(i)
self.addSeparator() self.addSeparator()
...@@ -124,7 +145,7 @@ class PamHyrNavigationToolbar2QT(NavigationToolbar2QT): ...@@ -124,7 +145,7 @@ class PamHyrNavigationToolbar2QT(NavigationToolbar2QT):
fname, filter = qt_compat._getSaveFileName( fname, filter = qt_compat._getSaveFileName(
self.canvas.parent(), self.canvas.parent(),
_translate("MainWindow_reach", "Choisissez un nom de fichier à sauvegarder"), _translate("MainWindow_reach", "Select destination file"),
start, start,
filters, selectedFilter) filters, selectedFilter)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment