Pamhyr: Add plot toolbar in most of window.

mesh
Pierre-Antoine Rouby 2023-08-23 16:17:45 +02:00
parent 2842bb5339
commit 2de2c8e077
7 changed files with 61 additions and 8 deletions

View File

@ -37,6 +37,7 @@ from PyQt5.QtWidgets import (
) )
from View.Plot.MplCanvas import MplCanvas from View.Plot.MplCanvas import MplCanvas
from View.Plot.navigation_toolbar_2qt import PamHyrNavigationToolbar2QT
from View.BoundaryCondition.translate import long_types from View.BoundaryCondition.translate import long_types
from View.BoundaryCondition.Edit.Table import TableModel, ExTimeDelegate from View.BoundaryCondition.Edit.Table import TableModel, ExTimeDelegate
@ -110,12 +111,17 @@ class EditBoundaryConditionWindow(ASubMainWindow, ListedSubWindow):
def setup_plot(self): def setup_plot(self):
self.canvas = MplCanvas(width=5, height=4, dpi=100) self.canvas = MplCanvas(width=5, height=4, dpi=100)
self.canvas.setObjectName("canvas") self.canvas.setObjectName("canvas")
self.toolbar = PamHyrNavigationToolbar2QT(
self.canvas, self
)
self.verticalLayout.addWidget(self.toolbar)
self.verticalLayout.addWidget(self.canvas) self.verticalLayout.addWidget(self.canvas)
self.plot = Plot( self.plot = Plot(
canvas = self.canvas, canvas = self.canvas,
data = self._data, data = self._data,
mode = self._study.time_system, mode = self._study.time_system,
toolbar = self.toolbar,
) )
self.plot.draw() self.plot.draw()

View File

@ -49,6 +49,8 @@ from View.InitialConditions.UndoCommand import (
from View.InitialConditions.Table import TableModel, ComboBoxDelegate from View.InitialConditions.Table import TableModel, ComboBoxDelegate
from View.Plot.MplCanvas import MplCanvas from View.Plot.MplCanvas import MplCanvas
from View.Plot.navigation_toolbar_2qt import PamHyrNavigationToolbar2QT
from View.InitialConditions.PlotDKP import PlotDKP from View.InitialConditions.PlotDKP import PlotDKP
from View.InitialConditions.PlotDischarge import PlotDischarge from View.InitialConditions.PlotDischarge import PlotDischarge
from View.InitialConditions.translate import * from View.InitialConditions.translate import *
@ -120,25 +122,33 @@ class InitialConditionsWindow(ASubMainWindow, ListedSubWindow):
def setup_graph(self): def setup_graph(self):
self.canvas_1 = MplCanvas(width=5, height=4, dpi=100) self.canvas_1 = MplCanvas(width=5, height=4, dpi=100)
self.canvas_1.setObjectName("canvas_1") self.canvas_1.setObjectName("canvas_1")
self.toolbar_1 = PamHyrNavigationToolbar2QT(
self.canvas_1, self
)
self.plot_layout_1 = self.find(QVBoxLayout, "verticalLayout_1") self.plot_layout_1 = self.find(QVBoxLayout, "verticalLayout_1")
self.plot_layout_1.addWidget(self.toolbar_1)
self.plot_layout_1.addWidget(self.canvas_1) self.plot_layout_1.addWidget(self.canvas_1)
self.plot_1 = PlotDKP( self.plot_1 = PlotDKP(
canvas = self.canvas_1, canvas = self.canvas_1,
data = self._ics, data = self._ics,
toolbar = None, toolbar = self.toolbar_1,
) )
self.plot_1.draw() self.plot_1.draw()
self.canvas_2 = MplCanvas(width=5, height=4, dpi=100) self.canvas_2 = MplCanvas(width=5, height=4, dpi=100)
self.canvas_2.setObjectName("canvas_2") self.canvas_2.setObjectName("canvas_2")
self.toolbar_2 = PamHyrNavigationToolbar2QT(
self.canvas_2, self
)
self.plot_layout_2 = self.find(QVBoxLayout, "verticalLayout_2") self.plot_layout_2 = self.find(QVBoxLayout, "verticalLayout_2")
self.plot_layout_2.addWidget(self.toolbar_2)
self.plot_layout_2.addWidget(self.canvas_2) self.plot_layout_2.addWidget(self.canvas_2)
self.plot_2 = PlotDischarge( self.plot_2 = PlotDischarge(
canvas = self.canvas_2, canvas = self.canvas_2,
data = self._ics, data = self._ics,
toolbar = None, toolbar = self.toolbar_2,
) )
self.plot_2.draw() self.plot_2.draw()

View File

@ -37,6 +37,7 @@ from PyQt5.QtWidgets import (
) )
from View.Plot.MplCanvas import MplCanvas from View.Plot.MplCanvas import MplCanvas
from View.Plot.navigation_toolbar_2qt import PamHyrNavigationToolbar2QT
from View.LateralContribution.translate import long_types from View.LateralContribution.translate import long_types
from View.LateralContribution.Edit.Table import TableModel, ExTimeDelegate from View.LateralContribution.Edit.Table import TableModel, ExTimeDelegate
@ -110,12 +111,17 @@ class EditLateralContributionWindow(ASubMainWindow, ListedSubWindow):
def setup_plot(self): def setup_plot(self):
self.canvas = MplCanvas(width=5, height=4, dpi=100) self.canvas = MplCanvas(width=5, height=4, dpi=100)
self.canvas.setObjectName("canvas") self.canvas.setObjectName("canvas")
self.toolbar = PamHyrNavigationToolbar2QT(
self.canvas, self
)
self.verticalLayout.addWidget(self.toolbar)
self.verticalLayout.addWidget(self.canvas) self.verticalLayout.addWidget(self.canvas)
self.plot = Plot( self.plot = Plot(
canvas = self.canvas, canvas = self.canvas,
data = self._data, data = self._data,
mode = self._study.time_system, mode = self._study.time_system,
toolbar = self.toolbar,
) )
self.plot.draw() self.plot.draw()

View File

@ -101,7 +101,7 @@ class PlotH(APlot):
return return
self.canvas.axes.set_ylim( self.canvas.axes.set_ylim(
[min(min(y),0), max(y)] [min(min(y),0), max(y) + 10]
) )
self._line = [ self._line = [

View File

@ -1,3 +1,19 @@
# Window.py -- Pamhyr
# Copyright (C) 2023 INRAE
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import logging import logging
@ -25,6 +41,7 @@ from PyQt5.QtWidgets import (
) )
from View.Plot.MplCanvas import MplCanvas from View.Plot.MplCanvas import MplCanvas
from View.Plot.navigation_toolbar_2qt import PamHyrNavigationToolbar2QT
from View.SedimentLayers.Edit.UndoCommand import * from View.SedimentLayers.Edit.UndoCommand import *
from View.SedimentLayers.Edit.Table import * from View.SedimentLayers.Edit.Table import *
@ -89,7 +106,11 @@ class EditSedimentLayersWindow(ASubMainWindow, ListedSubWindow):
def setup_graph(self): def setup_graph(self):
self.canvas = MplCanvas(width=5, height=4, dpi=100) self.canvas = MplCanvas(width=5, height=4, dpi=100)
self.canvas.setObjectName("canvas") self.canvas.setObjectName("canvas")
self.toolbar = PamHyrNavigationToolbar2QT(
self.canvas, self
)
self.plot_layout = self.find(QVBoxLayout, "verticalLayout") self.plot_layout = self.find(QVBoxLayout, "verticalLayout")
self.plot_layout.addWidget(self.toolbar)
self.plot_layout.addWidget(self.canvas) self.plot_layout.addWidget(self.canvas)
self._set_plot() self._set_plot()
@ -97,7 +118,7 @@ class EditSedimentLayersWindow(ASubMainWindow, ListedSubWindow):
self.plot = Plot( self.plot = Plot(
canvas = self.canvas, canvas = self.canvas,
data = self._sl, data = self._sl,
toolbar = None, toolbar = self.toolbar,
display_current = False display_current = False
) )
self.plot.draw() self.plot.draw()

View File

@ -29,8 +29,9 @@ from View.SedimentLayers.Reach.Profile.Table import *
from View.SedimentLayers.Reach.Profile.Plot import Plot from View.SedimentLayers.Reach.Profile.Plot import Plot
from View.Plot.MplCanvas import MplCanvas from View.Plot.MplCanvas import MplCanvas
from View.SedimentLayers.Reach.Profile.translate import * from View.Plot.navigation_toolbar_2qt import PamHyrNavigationToolbar2QT
from View.SedimentLayers.Reach.Profile.translate import *
from View.SedimentLayers.Window import SedimentLayersWindow from View.SedimentLayers.Window import SedimentLayersWindow
_translate = QCoreApplication.translate _translate = QCoreApplication.translate
@ -109,7 +110,11 @@ class ProfileSedimentLayersWindow(ASubMainWindow, ListedSubWindow):
def setup_graph(self): def setup_graph(self):
self.canvas = MplCanvas(width=5, height=4, dpi=100) self.canvas = MplCanvas(width=5, height=4, dpi=100)
self.canvas.setObjectName("canvas") self.canvas.setObjectName("canvas")
self.toolbar = PamHyrNavigationToolbar2QT(
self.canvas, self
)
self.plot_layout = self.find(QVBoxLayout, "verticalLayout") self.plot_layout = self.find(QVBoxLayout, "verticalLayout")
self.plot_layout.addWidget(self.toolbar)
self.plot_layout.addWidget(self.canvas) self.plot_layout.addWidget(self.canvas)
self._update_plot() self._update_plot()
@ -118,7 +123,7 @@ class ProfileSedimentLayersWindow(ASubMainWindow, ListedSubWindow):
self.plot = Plot( self.plot = Plot(
canvas = self.canvas, canvas = self.canvas,
data = self._profile, data = self._profile,
toolbar = None, toolbar = self.toolbar,
display_current = False display_current = False
) )
self.plot.draw() self.plot.draw()

View File

@ -30,8 +30,9 @@ from View.SedimentLayers.Reach.Plot import Plot
from View.SedimentLayers.Reach.SLDialog import SLDialog from View.SedimentLayers.Reach.SLDialog import SLDialog
from View.Plot.MplCanvas import MplCanvas from View.Plot.MplCanvas import MplCanvas
from View.SedimentLayers.Reach.translate import * from View.Plot.navigation_toolbar_2qt import PamHyrNavigationToolbar2QT
from View.SedimentLayers.Reach.translate import *
from View.SedimentLayers.Window import SedimentLayersWindow from View.SedimentLayers.Window import SedimentLayersWindow
from View.SedimentLayers.Reach.Profile.Window import ProfileSedimentLayersWindow from View.SedimentLayers.Reach.Profile.Window import ProfileSedimentLayersWindow
@ -97,7 +98,11 @@ class ReachSedimentLayersWindow(ASubMainWindow, ListedSubWindow):
def setup_graph(self): def setup_graph(self):
self.canvas = MplCanvas(width=5, height=4, dpi=100) self.canvas = MplCanvas(width=5, height=4, dpi=100)
self.canvas.setObjectName("canvas") self.canvas.setObjectName("canvas")
self.toolbar = PamHyrNavigationToolbar2QT(
self.canvas, self
)
self.plot_layout = self.find(QVBoxLayout, "verticalLayout_2") self.plot_layout = self.find(QVBoxLayout, "verticalLayout_2")
self.plot_layout.addWidget(self.toolbar)
self.plot_layout.addWidget(self.canvas) self.plot_layout.addWidget(self.canvas)
self._update_plot() self._update_plot()
@ -106,7 +111,7 @@ class ReachSedimentLayersWindow(ASubMainWindow, ListedSubWindow):
self.plot = Plot( self.plot = Plot(
canvas = self.canvas, canvas = self.canvas,
data = self._reach, data = self._reach,
toolbar = None, toolbar = self.toolbar,
display_current = False display_current = False
) )
self.plot.draw() self.plot.draw()