@@ -87,7 +87,8 @@ def paint(self, painter, option, index):
8787 text_rect = QtCore .QRectF (
8888 rect .center ().x () - (font_width / 2 ) + txt_offset ,
8989 rect .center ().y () - (font_height / 2 ),
90- font_width , font_height )
90+ font_width , font_height
91+ )
9192 painter .drawText (text_rect , item .text ())
9293 painter .restore ()
9394
@@ -144,15 +145,23 @@ def add_label_item(self, label, node_id):
144145 item .setToolTip (node_id )
145146 metrics = QtGui .QFontMetrics (item .font ())
146147 if hasattr (metrics , 'horizontalAdvance' ):
147- width = metrics .horizontalAdvance (item .text ()) + 30
148+ width = metrics .horizontalAdvance (item .text ())
148149 else :
149- width = metrics .width (item .text ()) + 30
150+ width = metrics .width (item .text ())
151+ width *= 1.5
150152 item .setSizeHint (QtCore .QSize (width , 20 ))
151153 self .model ().appendRow (item )
152154 self .selectionModel ().setCurrentIndex (
153155 self .model ().indexFromItem (item ),
154156 QtCore .QItemSelectionModel .ClearAndSelect )
155157
158+ def update_label_item (self , label , node_id ):
159+ rows = reversed (range (self .model ().rowCount ()))
160+ for r in rows :
161+ item = self .model ().item (r , 0 )
162+ if item .toolTip () == node_id :
163+ item .setText (label )
164+
156165 def remove_label_item (self , node_id ):
157166 rows = reversed (range (1 , self .model ().rowCount ()))
158167 node_ids = [self .model ().item (r , 0 ).toolTip () for r in rows ]
0 commit comments