@@ -118,11 +118,7 @@ def __init__(self, parent, model, position):
118118 self .horizontalHeader ().setFrameStyle (QFrame .NoFrame )
119119 self .verticalHeader ().setFrameStyle (QFrame .NoFrame )
120120
121- # make the grid a bit more compact
122- self .horizontalHeader ().setDefaultSectionSize (64 )
123- self .horizontalHeader ().setFixedHeight (10 )
124- self .verticalHeader ().setDefaultSectionSize (20 )
125- self .verticalHeader ().setFixedWidth (10 )
121+ self .set_default_size ()
126122 # to fetch more rows/columns when required
127123 self .horizontalScrollBar ().valueChanged .connect (self .on_horizontal_scroll_changed )
128124 self .verticalScrollBar ().valueChanged .connect (self .on_vertical_scroll_changed )
@@ -141,6 +137,13 @@ def __init__(self, parent, model, position):
141137 self .horizontalHeader ().sectionResized .connect (self .updateGeometry )
142138 self .verticalHeader ().sectionResized .connect (self .updateGeometry )
143139
140+ def set_default_size (self ):
141+ # make the grid a bit more compact
142+ self .horizontalHeader ().setDefaultSectionSize (64 )
143+ self .horizontalHeader ().setFixedHeight (10 )
144+ self .verticalHeader ().setDefaultSectionSize (20 )
145+ self .verticalHeader ().setFixedWidth (10 )
146+
144147 def on_vertical_scroll_changed (self , value ):
145148 if value == self .verticalScrollBar ().maximum ():
146149 self .model ().fetch_more_rows ()
@@ -155,6 +158,16 @@ def updateSectionHeight(self, logicalIndex, oldSize, newSize):
155158 def updateSectionWidth (self , logicalIndex , oldSize , newSize ):
156159 self .setColumnWidth (logicalIndex , newSize )
157160
161+ def autofit_columns (self ):
162+ """Resize cells to contents"""
163+ QApplication .setOverrideCursor (QCursor (Qt .WaitCursor ))
164+
165+ # Spyder loads more columns before resizing, but since it does not
166+ # load all columns anyway, I do not see the point
167+ # self.model().fetch_more_columns()
168+ self .resizeColumnsToContents ()
169+ QApplication .restoreOverrideCursor ()
170+
158171 def selectAll (self ):
159172 self .allSelected .emit ()
160173
@@ -291,9 +304,7 @@ def __init__(self, parent, model, dtype, shape):
291304 self .horizontalHeader ().setFrameStyle (QFrame .NoFrame )
292305 self .verticalHeader ().setFrameStyle (QFrame .NoFrame )
293306
294- # make the grid a bit more compact
295- self .horizontalHeader ().setDefaultSectionSize (64 )
296- self .verticalHeader ().setDefaultSectionSize (20 )
307+ self .set_default_size ()
297308 # Hide horizontal+vertical headers
298309 self .horizontalHeader ().hide ()
299310 self .verticalHeader ().hide ()
@@ -308,6 +319,11 @@ def __init__(self, parent, model, dtype, shape):
308319
309320 # self.horizontalHeader().sectionClicked.connect(self.on_horizontal_header_clicked)
310321
322+ def set_default_size (self ):
323+ # make the grid a bit more compact
324+ self .horizontalHeader ().setDefaultSectionSize (64 )
325+ self .verticalHeader ().setDefaultSectionSize (20 )
326+
311327 # def on_horizontal_header_clicked(self, section_index):
312328 # menu = FilterMenu(self)
313329 # header = self.horizontalHeader()
@@ -701,6 +717,11 @@ def set_data(self, data, bg_gradient=None, bg_value=None):
701717 filters_layout .addStretch ()
702718 self .data_adapter .update_filtered_data ({})
703719
720+ # reset default size
721+ self .view_ylabels .set_default_size ()
722+ self .view_xlabels .set_default_size ()
723+ self .view_data .set_default_size ()
724+
704725 def _update_digits_scientific (self , data ):
705726 """
706727 data : LArray
@@ -820,7 +841,9 @@ def _data_digits(self, data, maxdigits=6):
820841 return maxdigits
821842
822843 def autofit_columns (self ):
823- self .view_data .autofit_columns ()
844+ self .view_xlabels .autofit_columns ()
845+ for column in range (self .model_xlabels .columnCount ()):
846+ self .resizeColumnToContents (column )
824847
825848 def resizeColumnToContents (self , column ):
826849 # must be connected to view_labels.horizontalHeader().sectionHandleDoubleClicked signal
0 commit comments