[timeline] fix window updating, redrawing

This commit is contained in:
Jan Grewe 2025-02-21 11:01:26 +01:00
parent c231b52876
commit dc4833e825

View File

@ -1,11 +1,11 @@
import logging
import numpy as np
import pandas as pd
from PySide6.QtCore import Qt
from PySide6.QtWidgets import QWidget, QVBoxLayout, QSizePolicy, QLabel
from PySide6.QtWidgets import QGraphicsView, QGraphicsScene, QGraphicsItem, QGraphicsRectItem, QGraphicsLineItem
from PySide6.QtWidgets import QGraphicsView, QGraphicsScene, QGraphicsItem, QGraphicsRectItem, QGraphicsLineItem, QGraphicsEllipseItem
from PySide6.QtCore import Qt, QRectF, QRectF
from PySide6.QtGui import QBrush, QColor, QPen, QFont, QPainter
from PySide6.QtGui import QBrush, QColor, QPen, QFont
from fixtracks.utils.signals import DetectionTimelineSignals
from fixtracks.utils.trackingdata import TrackingData
@ -57,7 +57,7 @@ class Window(QGraphicsRectItem):
self._width = newwidth
r = self.rect()
self.setRect(newx, r.y(), self._width, r.height())
self.paint()
self.update()
self.signals.windowMoved.emit()
def mouseMoveEvent(self, event):
@ -158,13 +158,15 @@ class DetectionTimeline(QWidget):
# self.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed)
def setData(self, data:TrackingData):
logging.debug("Timeline: setData!")
self._data = data
for i in self._scene.items():
if isinstance(i, QGraphicsLineItem):
if isinstance(i, (QGraphicsLineItem, QGraphicsEllipseItem)):
self._scene.removeItem(i)
self.draw_coverage()
def draw_coverage(self):
logging.debug("Timeline: drawCoverage!")
if isinstance(self._data, TrackingData):
maxframe = np.max(self._data["frame"])
bins = np.linspace(0, maxframe, self._stepCount)