1818from napari .utils .events import Event
1919from napari .utils .history import get_save_history , update_save_history
2020from qtpy .QtCore import Qt , QTimer , Signal , QSize , QPoint , QSettings
21- from qtpy .QtGui import QPainter , QIcon , QAction
21+ from qtpy .QtGui import QPainter , QIcon , QAction , QCursor
2222from qtpy .QtWidgets import (
2323 QButtonGroup ,
2424 QCheckBox ,
@@ -989,6 +989,26 @@ def dropEvent(self, event):
989989 self .sig_dropped .emit (event )
990990
991991
992+ class ClickableLabel (QLabel ):
993+ clicked = Signal (str )
994+
995+ def __init__ (self , text = "" , color = "turquoise" , parent = None ):
996+ super ().__init__ (text , parent )
997+ self ._default_style = self .styleSheet ()
998+ self .color = color
999+
1000+ def mousePressEvent (self , event ):
1001+ self .clicked .emit (self .text ())
1002+
1003+ def enterEvent (self , event ):
1004+ self .setCursor (QCursor (Qt .PointingHandCursor ))
1005+ self .setStyleSheet (f"color: { self .color } " )
1006+
1007+ def leaveEvent (self , event ):
1008+ self .unsetCursor ()
1009+ self .setStyleSheet (self ._default_style )
1010+
1011+
9921012class LabelPair (QWidget ):
9931013 def __init__ (self , color : str , name : str , parent : QWidget ):
9941014 super ().__init__ (parent )
@@ -997,7 +1017,7 @@ def __init__(self, color: str, name: str, parent: QWidget):
9971017 self ._part_name = name
9981018
9991019 self .color_label = QLabel ("" , parent = self )
1000- self .part_label = QLabel (name , parent = self )
1020+ self .part_label = ClickableLabel (name , color = color , parent = self )
10011021
10021022 self .color_label .setToolTip (name )
10031023 self .part_label .setToolTip (name )
@@ -1057,6 +1077,15 @@ def __init__(self, parent):
10571077
10581078 self ._build ()
10591079
1080+ @property
1081+ def labels (self ):
1082+ labels = []
1083+ for i in range (self ._layout .count ()):
1084+ item = self ._layout .itemAt (i )
1085+ if w := item .widget ():
1086+ labels .append (w )
1087+ return labels
1088+
10601089 def _build (self ):
10611090 self ._container .setSizePolicy (
10621091 QSizePolicy .Fixed , QSizePolicy .Maximum
0 commit comments