code: def setModel(self, model, relayout=True):
          
          self._model = model
          sel_model = self.dataTable.selectionModel()
          sel_model.currentColumnChanged.connect(
                  self._resizeCurrentColumnToContents)
  
          # Asociate the models (level, vertical index and horizontal header)
          # with its corresponding view.
          self._reset_model(self.table_level, DataFrameLevelModel(model,
                                                                  self.palette(),
                                                                  self.font()))
          self._reset_model(self.table_header, DataFrameHeaderModel(
                                                              model,
                                                              0,
                                                              self.palette()))
          self._reset_model(self.table_index, DataFrameHeaderModel(
                                                              model,
                                                              1,
                                                              self.palette()))
  
          # Needs to be called after setting all table models
          if relayout:
              self._update_layout()
docs: Set the model for the data, header/index and level views.