Add tooltip to seekbar on hover

This commit is contained in:
Peter Stockings
2026-03-05 13:45:49 +11:00
parent 25ea1694f1
commit dd00011b77

View File

@@ -17,6 +17,7 @@ class ClickableSlider(QSlider):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self._get_tooltip_text = None
self.setMouseTracking(True)
def set_tooltip_provider(self, provider_func):
self._get_tooltip_text = provider_func
@@ -43,11 +44,12 @@ class ClickableSlider(QSlider):
def mouseMoveEvent(self, event):
super().mouseMoveEvent(event)
if event.buttons() & Qt.MouseButton.LeftButton:
if self._get_tooltip_text:
text = self._get_tooltip_text(self.value())
if text:
QToolTip.showText(event.globalPosition().toPoint(), text, self)
if self._get_tooltip_text and self.width() > 0:
hover_val = self.minimum() + ((self.maximum() - self.minimum()) * event.pos().x()) / self.width()
hover_val = max(self.minimum(), min(self.maximum(), int(hover_val)))
text = self._get_tooltip_text(hover_val)
if text:
QToolTip.showText(event.globalPosition().toPoint(), text, self)
def mouseReleaseEvent(self, event):
super().mouseReleaseEvent(event)