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,
|
||||
QUndoStack, QShortcut, QAction, QItemDelegate,
|
||||
QComboBox, QVBoxLayout, QHeaderView, QTabWidget,
|
||||
QSlider,
|
||||
)
|
||||
|
||||
from View.Plot.MplCanvas import MplCanvas
|
||||
|
|
@ -58,6 +59,8 @@ class ResultsWindow(ASubMainWindow, ListedSubWindow):
|
|||
self._solver = solver
|
||||
self._results = results
|
||||
|
||||
self._timestamps = sorted(list(self._results.get("timestamps")))
|
||||
|
||||
self.setup_title(title)
|
||||
|
||||
super(ResultsWindow, self).__init__(
|
||||
|
|
@ -67,6 +70,7 @@ class ResultsWindow(ASubMainWindow, ListedSubWindow):
|
|||
self.setup_sc()
|
||||
self.setup_table()
|
||||
self.setup_graph()
|
||||
self.setup_slider()
|
||||
self.setup_connections()
|
||||
|
||||
self.ui.setWindowTitle(self._title)
|
||||
|
|
@ -104,6 +108,14 @@ class ResultsWindow(ASubMainWindow, ListedSubWindow):
|
|||
table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
|
||||
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):
|
||||
self.canvas = MplCanvas(width=5, height=4, dpi=100)
|
||||
self.canvas.setObjectName("canvas")
|
||||
|
|
@ -158,7 +170,11 @@ class ResultsWindow(ASubMainWindow, ListedSubWindow):
|
|||
|
||||
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:
|
||||
self.plot_xy.set_reach(reach_id)
|
||||
if profile_id is not None:
|
||||
|
|
@ -170,11 +186,27 @@ class ResultsWindow(ASubMainWindow, ListedSubWindow):
|
|||
|
||||
|
||||
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):
|
||||
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
|
||||
|
||||
def _set_current_timestamp(self):
|
||||
timestamp = self._timestamps[self._slider_time.value()]
|
||||
self.update(timestamp = timestamp)
|
||||
|
||||
def copy(self):
|
||||
logger.info("TODO: copy")
|
||||
|
||||
|
|
|
|||
|
|
@ -30,17 +30,17 @@
|
|||
<widget class="QTableView" name="tableView_reach"/>
|
||||
<widget class="QTableView" name="tableView_profile"/>
|
||||
</widget>
|
||||
<widget class="QWidget" name="">
|
||||
<widget class="QWidget" name="layoutWidget">
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="1" column="0">
|
||||
<widget class="QSlider" name="horizontalSlider">
|
||||
<widget class="QSlider" name="horizontalSlider_time">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QSlider" name="verticalSlider">
|
||||
<widget class="QSlider" name="verticalSlider_profile">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
|
|
|
|||
Loading…
Reference in New Issue