-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathclickable_label.py
More file actions
26 lines (21 loc) · 873 Bytes
/
Copy pathclickable_label.py
File metadata and controls
26 lines (21 loc) · 873 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
from PySide6.QtWidgets import QLabel
from PySide6.QtCore import QEvent, Qt, Signal
from PySide6.QtGui import QMouseEvent, QEnterEvent
class ClickableLabel(QLabel):
clicked = Signal()
def __init__(self, text="", parent=None):
super().__init__(text, parent)
self.setCursor(Qt.CursorShape.PointingHandCursor)
self._hover = False
def enterEvent(self, event: QEnterEvent) -> None:
self._hover = True
self.setStyleSheet("font-weight: bold;")
super().enterEvent(event)
def leaveEvent(self, event: QEvent) -> None:
self._hover = False
self.setStyleSheet("")
super().leaveEvent(event)
def mousePressEvent(self, event: QMouseEvent) -> None:
if event.button() == Qt.MouseButton.LeftButton:
self.clicked.emit()
super().mousePressEvent(event)