mirror of
https://gitlab.com/pamhyr/pamhyr2.git
synced 2026-10-30 03:20:41 +01:00
Resutls: CustomPlot: Prepare ploting mecanisme.
This commit is contained in:
1 parent
98ee3ee6ec
commit
daaa9b193e
3 files changed
+195
-8
No files matched your search
@@ -38,7 +38,7 @@ from PyQt5.QtWidgets import (
|
||||
QFileDialog, QTableView, QAbstractItemView,
|
||||
QUndoStack, QShortcut, QAction, QItemDelegate,
|
||||
QComboBox, QVBoxLayout, QHeaderView, QTabWidget,
|
||||
QSlider, QLabel,
|
||||
QSlider, QLabel, QWidget, QGridLayout,
|
||||
)
|
||||
|
||||
from View.Tools.Plot.PamhyrCanvas import MplCanvas
|
||||
@@ -51,6 +51,7 @@ from View.Results.PlotH import PlotH
|
||||
from View.Results.PlotSedReach import PlotSedReach
|
||||
from View.Results.PlotSedProfile import PlotSedProfile
|
||||
|
||||
from View.Results.CustomPlot.Plot import CustomPlot
|
||||
from View.Results.CustomPlot.CustomPlotValuesSelectionDialog import (
|
||||
CustomPlotValuesSelectionDialog,
|
||||
)
|
||||
@@ -91,6 +92,8 @@ class ResultsWindow(PamhyrWindow):
|
||||
parent=parent
|
||||
)
|
||||
|
||||
self._additional_plot = {}
|
||||
|
||||
self.setup_table()
|
||||
self.setup_plot()
|
||||
self.setup_slider()
|
||||
@@ -377,6 +380,27 @@ class ResultsWindow(PamhyrWindow):
|
||||
|
||||
self.update_statusbar()
|
||||
|
||||
def _get_current_reach(self):
|
||||
table = self.find(QTableView, f"tableView_reach")
|
||||
indexes = table.selectedIndexes()
|
||||
if len(indexes) == 0:
|
||||
return 0
|
||||
|
||||
return indexes[0].row()
|
||||
|
||||
def _get_current_profile(self):
|
||||
table = self.find(QTableView, f"tableView_profile")
|
||||
indexes = table.selectedIndexes()
|
||||
if len(indexes) == 0:
|
||||
return 0
|
||||
|
||||
return indexes[0].row()
|
||||
|
||||
def _get_current_timestamp(self):
|
||||
return self._timestamps[
|
||||
self._slider_time.value()
|
||||
]
|
||||
|
||||
def _set_current_reach(self):
|
||||
table = self.find(QTableView, f"tableView_reach")
|
||||
indexes = table.selectedIndexes()
|
||||
@@ -408,8 +432,53 @@ class ResultsWindow(PamhyrWindow):
|
||||
def _add_custom_plot(self):
|
||||
dlg = CustomPlotValuesSelectionDialog(parent=self)
|
||||
if dlg.exec():
|
||||
value = dlg.value
|
||||
logger.info(value)
|
||||
x, y = dlg.value
|
||||
self.create_new_tab_custom_plot(x, y)
|
||||
|
||||
def create_new_tab_custom_plot(self, x:str, y:list):
|
||||
name = f"{x}: {','.join(y)}"
|
||||
wname = f"tab_custom_{x}_{y}"
|
||||
|
||||
tab_widget = self.find(QTabWidget, f"tabWidget")
|
||||
|
||||
# This plot already exists
|
||||
if name in self._additional_plot:
|
||||
tab_widget.setCurrentWidget(
|
||||
tab_widget.findChild(QWidget, wname)
|
||||
)
|
||||
return
|
||||
|
||||
widget = QWidget()
|
||||
grid = QGridLayout()
|
||||
|
||||
widget.setObjectName(wname)
|
||||
|
||||
canvas = MplCanvas(width=5, height=4, dpi=100)
|
||||
canvas.setObjectName(f"canvas_{x}_{y}")
|
||||
toolbar = PamhyrPlotToolbar(
|
||||
canvas, self
|
||||
)
|
||||
|
||||
plot = CustomPlot(
|
||||
x, y,
|
||||
self._get_current_reach(),
|
||||
self._get_current_profile(),
|
||||
self._get_current_timestamp(),
|
||||
data=self._results,
|
||||
canvas=canvas,
|
||||
toolbar=toolbar,
|
||||
trad=self._trad,
|
||||
parent=self,
|
||||
)
|
||||
plot.draw()
|
||||
|
||||
# Add plot to additional plot
|
||||
self._additional_plot[name] = plot
|
||||
|
||||
grid.addWidget(toolbar, 0, 0)
|
||||
grid.addWidget(canvas, 1, 0)
|
||||
widget.setLayout(grid)
|
||||
tab_widget.addTab(widget, name)
|
||||
|
||||
def _copy(self):
|
||||
logger.info("TODO: copy")
|
||||
|
||||
Reference in new issue
Block a user