Add tooltip to seekbar on hover
This commit is contained in:
@@ -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,9 +44,10 @@ 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 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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user