Add tooltip to seekbar on hover
This commit is contained in:
@@ -17,6 +17,7 @@ class ClickableSlider(QSlider):
|
|||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
self._get_tooltip_text = None
|
self._get_tooltip_text = None
|
||||||
|
self.setMouseTracking(True)
|
||||||
|
|
||||||
def set_tooltip_provider(self, provider_func):
|
def set_tooltip_provider(self, provider_func):
|
||||||
self._get_tooltip_text = provider_func
|
self._get_tooltip_text = provider_func
|
||||||
@@ -43,11 +44,12 @@ class ClickableSlider(QSlider):
|
|||||||
|
|
||||||
def mouseMoveEvent(self, event):
|
def mouseMoveEvent(self, event):
|
||||||
super().mouseMoveEvent(event)
|
super().mouseMoveEvent(event)
|
||||||
if event.buttons() & Qt.MouseButton.LeftButton:
|
if self._get_tooltip_text and self.width() > 0:
|
||||||
if self._get_tooltip_text:
|
hover_val = self.minimum() + ((self.maximum() - self.minimum()) * event.pos().x()) / self.width()
|
||||||
text = self._get_tooltip_text(self.value())
|
hover_val = max(self.minimum(), min(self.maximum(), int(hover_val)))
|
||||||
if text:
|
text = self._get_tooltip_text(hover_val)
|
||||||
QToolTip.showText(event.globalPosition().toPoint(), text, self)
|
if text:
|
||||||
|
QToolTip.showText(event.globalPosition().toPoint(), text, self)
|
||||||
|
|
||||||
def mouseReleaseEvent(self, event):
|
def mouseReleaseEvent(self, event):
|
||||||
super().mouseReleaseEvent(event)
|
super().mouseReleaseEvent(event)
|
||||||
|
|||||||
Reference in New Issue
Block a user