mirror of https://gitlab.com/pamhyr/pamhyr2
Results: Connect sliders.
parent
b04e325ab5
commit
05411c468d
|
|
@ -37,6 +37,7 @@ from PyQt5.QtWidgets import (
|
||||||
QFileDialog, QTableView, QAbstractItemView,
|
QFileDialog, QTableView, QAbstractItemView,
|
||||||
QUndoStack, QShortcut, QAction, QItemDelegate,
|
QUndoStack, QShortcut, QAction, QItemDelegate,
|
||||||
QComboBox, QVBoxLayout, QHeaderView, QTabWidget,
|
QComboBox, QVBoxLayout, QHeaderView, QTabWidget,
|
||||||
|
QSlider,
|
||||||
)
|
)
|
||||||
|
|
||||||
from View.Plot.MplCanvas import MplCanvas
|
from View.Plot.MplCanvas import MplCanvas
|
||||||
|
|
@ -58,6 +59,8 @@ class ResultsWindow(ASubMainWindow, ListedSubWindow):
|
||||||
self._solver = solver
|
self._solver = solver
|
||||||
self._results = results
|
self._results = results
|
||||||
|
|
||||||
|
self._timestamps = sorted(list(self._results.get("timestamps")))
|
||||||
|
|
||||||
self.setup_title(title)
|
self.setup_title(title)
|
||||||
|
|
||||||
super(ResultsWindow, self).__init__(
|
super(ResultsWindow, self).__init__(
|
||||||
|
|
@ -67,6 +70,7 @@ class ResultsWindow(ASubMainWindow, ListedSubWindow):
|
||||||
self.setup_sc()
|
self.setup_sc()
|
||||||
self.setup_table()
|
self.setup_table()
|
||||||
self.setup_graph()
|
self.setup_graph()
|
||||||
|
self.setup_slider()
|
||||||
self.setup_connections()
|
self.setup_connections()
|
||||||
|
|
||||||
self.ui.setWindowTitle(self._title)
|
self.ui.setWindowTitle(self._title)
|
||||||
|
|
@ -104,6 +108,14 @@ class ResultsWindow(ASubMainWindow, ListedSubWindow):
|
||||||
table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
|
table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
|
||||||
table.setAlternatingRowColors(True)
|
table.setAlternatingRowColors(True)
|
||||||
|
|
||||||
|
def setup_slider(self):
|
||||||
|
self._slider_profile = self.find(QSlider, f"verticalSlider_profile")
|
||||||
|
default_reach = self._results.river.reach(0)
|
||||||
|
self._slider_profile.setMaximum(len(default_reach.profiles) - 1)
|
||||||
|
|
||||||
|
self._slider_time = self.find(QSlider, f"horizontalSlider_time")
|
||||||
|
self._slider_time.setMaximum(len(self._timestamps) - 1)
|
||||||
|
|
||||||
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")
|
||||||
|
|
@ -158,7 +170,11 @@ class ResultsWindow(ASubMainWindow, ListedSubWindow):
|
||||||
|
|
||||||
self._table[t].dataChanged.connect(fun[t])
|
self._table[t].dataChanged.connect(fun[t])
|
||||||
|
|
||||||
def plotXY(self, reach_id = None, profile_id = None, timestamp = None):
|
self._slider_profile.valueChanged.connect(self._set_current_profile_slider)
|
||||||
|
self._slider_time.valueChanged.connect(self._set_current_timestamp)
|
||||||
|
|
||||||
|
|
||||||
|
def update(self, reach_id = None, profile_id = None, timestamp = None):
|
||||||
if reach_id is not None:
|
if reach_id is not None:
|
||||||
self.plot_xy.set_reach(reach_id)
|
self.plot_xy.set_reach(reach_id)
|
||||||
if profile_id is not None:
|
if profile_id is not None:
|
||||||
|
|
@ -170,11 +186,27 @@ class ResultsWindow(ASubMainWindow, ListedSubWindow):
|
||||||
|
|
||||||
|
|
||||||
def _set_current_reach(self):
|
def _set_current_reach(self):
|
||||||
return
|
table = self.find(QTableView, f"tableView_reach")
|
||||||
|
indexes = table.selectedIndexes()
|
||||||
|
|
||||||
|
self.update(reach_id = indexes[0])
|
||||||
|
|
||||||
def _set_current_profile(self):
|
def _set_current_profile(self):
|
||||||
|
table = self.find(QTableView, f"tableView_profile")
|
||||||
|
indexes = table.selectedIndexes()
|
||||||
|
|
||||||
|
self.update(profile_id = indexes[0])
|
||||||
|
|
||||||
|
def _set_current_profile_slider(self):
|
||||||
|
pid = self._slider_profile.value()
|
||||||
|
self.update(profile_id = pid)
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
|
def _set_current_timestamp(self):
|
||||||
|
timestamp = self._timestamps[self._slider_time.value()]
|
||||||
|
self.update(timestamp = timestamp)
|
||||||
|
|
||||||
def copy(self):
|
def copy(self):
|
||||||
logger.info("TODO: copy")
|
logger.info("TODO: copy")
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -30,17 +30,17 @@
|
||||||
<widget class="QTableView" name="tableView_reach"/>
|
<widget class="QTableView" name="tableView_reach"/>
|
||||||
<widget class="QTableView" name="tableView_profile"/>
|
<widget class="QTableView" name="tableView_profile"/>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QWidget" name="">
|
<widget class="QWidget" name="layoutWidget">
|
||||||
<layout class="QGridLayout" name="gridLayout">
|
<layout class="QGridLayout" name="gridLayout">
|
||||||
<item row="1" column="0">
|
<item row="1" column="0">
|
||||||
<widget class="QSlider" name="horizontalSlider">
|
<widget class="QSlider" name="horizontalSlider_time">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Horizontal</enum>
|
<enum>Qt::Horizontal</enum>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="1">
|
<item row="0" column="1">
|
||||||
<widget class="QSlider" name="verticalSlider">
|
<widget class="QSlider" name="verticalSlider_profile">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Vertical</enum>
|
<enum>Qt::Vertical</enum>
|
||||||
</property>
|
</property>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue