code: def splitAt(self, point):
          
          wx = point.x() + self.horizontalScrollBar().value()
          wy = point.y() + self.verticalScrollBar().value()
  
          row = wy/(ROW_HEIGHT + ROW_SPACE)
          if row > self.model().rowCount(self.rootIndex()) - 1:
              row = self.model().rowCount(self.rootIndex())
          for col in range(self.model().columnCountForRow(row)):
              if self._rects[row][col].contains(wx, wy):
                  return (row, col)
          return row, self.model().columnCountForRow(row)
docs: Gets the nearest index to *point*, *point* does not have to be over 
          an item. index can be +1 more in row and/or column than existing items
  
          :param point: any point within the view, in view coordinates
          :type point: :qtdoc:`QPoint`
          :returns: (int, int) -- (row, column) of the nearest index