@@ -135,6 +135,7 @@ def recursive_init_ui(self, d, parent_widget, parent_layout, path="", var=""):
135135 values = d .get ('values' , None )
136136 label = d .get ('label' , None )
137137 widget_type = d .get ('type' , None )
138+ description = d .get ('description' , None )
138139
139140 if values :
140141 gui_widget = create_hor_composite_widget (parent_widget ,
@@ -143,7 +144,8 @@ def recursive_init_ui(self, d, parent_widget, parent_layout, path="", var=""):
143144 widget_type ,
144145 values ,
145146 path ,
146- var )
147+ var ,
148+ description )
147149 gui_widget .parent = self
148150 gui_widget .update ()
149151 parent_widget .widgets .append (gui_widget )
@@ -207,7 +209,8 @@ def create_hor_composite_widget(parent_widget,
207209 widget_type = None ,
208210 parameters = None ,
209211 path = '' ,
210- var = '' ):
212+ var = '' ,
213+ description = '' ):
211214 """
212215 Create a horizontal composite widget to be added in the main vertical layout
213216 The composite widget is made of a qlabel + an interactive gui widget
@@ -228,7 +231,7 @@ def create_hor_composite_widget(parent_widget,
228231 label_widget = QLabel ("%s:" % label )
229232 hor_layout .addWidget (label_widget )
230233
231- qvar_widget = widget_factory (widget_type )(parameters , path , var , parent_widget )
234+ qvar_widget = widget_factory (widget_type )(parameters , path , var , parent_widget , description )
232235
233236 hor_layout .addWidget (qvar_widget )
234237 main_widget .setLayout (hor_layout )
@@ -263,7 +266,7 @@ def widget_factory(widget_type):
263266
264267 # nested class
265268 class ComboBox (QComboBox ):
266- def __init__ (self , values = None , path = '' , var = '' , parent_widget = None ):
269+ def __init__ (self , values = None , path = '' , var = '' , parent_widget = None , description = None ):
267270 QComboBox .__init__ (self )
268271 self .parent_widget = parent_widget
269272 self .var = var
@@ -272,7 +275,15 @@ def __init__(self, values=None, path='', var='', parent_widget=None):
272275 self .path = path
273276 self .currentIndexChanged .connect (lambda : self .combo_box_change (self .choices ))
274277 self .addItems (values )
278+ count = 0
279+ for v in values :
280+ choice_description = values [v ].get ('description' ,'' )
281+ if choice_description :
282+ self .setItemData (count , choice_description , Qt .ToolTipRole )
283+ count += 1
275284 self .setCurrentIndex (0 )
285+ if description :
286+ self .setToolTip (description )
276287
277288 def update (self ):
278289 self .currentIndexChanged .emit (0 )
@@ -301,7 +312,7 @@ def combo_box_change(self, values):
301312 hide_childs (self .parent .containers [new_key ])
302313
303314 class Divider (QFrame ):
304- def __init__ (self , values = None , path = '' , var = '' , parent_widget = None ):
315+ def __init__ (self , values = None , path = '' , var = '' , parent_widget = None , description = None ):
305316 QFrame .__init__ (self )
306317 self .setFrameShape (QFrame .HLine )
307318 self .setFrameShadow (QFrame .Sunken )
@@ -312,7 +323,7 @@ def update(self):
312323 return
313324
314325 class Slider (QWidget ):
315- def __init__ (self , values = None , path = '' , var = '' , parent_widget = None ):
326+ def __init__ (self , values = None , path = '' , var = '' , parent_widget = None , description = None ):
316327 QWidget .__init__ (self )
317328 self .parent = None
318329 self .var = var
@@ -329,6 +340,11 @@ def __init__(self, values=None, path='', var='', parent_widget=None):
329340 self .slider .setFixedWidth (100 )
330341 self .slider .setMinimum (values .get ('min' ))
331342 self .slider .setMaximum (values .get ('max' ))
343+ if 'description' in values :
344+ self .slider .setToolTip (values ['description' ])
345+ else :
346+ if description :
347+ self .slider .setToolTip (description )
332348
333349 self .slider_edit .textChanged .connect (self .slider_edit_change )
334350 self .slider .valueChanged .connect (self .slider_change )
0 commit comments