title: Display large table with grid
body: <p>I am trying to display with a grid a table that is 270 rows and 70 columns
  It is apparently too big to display all in one shot.
  If I limit the rows to 50 it takes 12 seconds, then more as I increase of course, and then at some point it goes wonky.
  Is there to first set the label data for say 20 rows, then display, then set for the next 20, add those to the display, and so on?</p>
  
  <pre><code>def populate_using_tkinter(frame, project_list):
  
      current_row_number = 0;
  
      # Columns ********************************************************************************************************
      label_id_column = Tkinter.Label(frame, text=Constants.PROJECT_COLUMN_TITLE_Id, borderwidth=GRID_BORDER_WIDTH, relief="solid", background=row_header_color)
      &lt;more columns&gt;
      label_ContractorID_column = Tkinter.Label(frame,text = Constants.PROJECT_COLUMN_TITLE_ContractorID, borderwidth = GRID_BORDER_WIDTH,relief = "solid")
  
      label_id_column.grid(row=current_row_number, column=Constants.PROJECT_ID_COLUMN, sticky="nsew")
      &lt;more columns&gt;
      label_ContractorID_column.grid(row=current_row_number, column=Constants.PROJECT_ContractorID_COLUMN, sticky="nsew")
  
      current_row_number +=1    
      frame.rowconfigure(current_row_number, minsize=row_height, weight=0)
  
      for project in project_list:
          project_id = project[0]
          &lt;more assignments&gt;
          project_ContractorID = project[70]
  
          # Data ********************************************************************************************************
          try:
              label_project_id = Tkinter.Label(frame, text=project_id, borderwidth=GRID_BORDER_WIDTH, relief="solid", background=row_color)
              &lt;more data&gt;
              label_project_ContractorID=Tkinter.Label(frame,text=projectContractorID,anchor="w",borderwidth=GRID_BORDER_WIDTH,relief="solid", background=row_color)
  
              label_project_id.grid(row=current_row_number, column=Constants.PROJECT_ID_COLUMN, sticky="nsew")
              &lt;more data&gt;
              label_project_ContractorID.grid(row=current_row_number, column=Constants.PROJECT_ContractorID_COLUMN, sticky="nsew") 
  
          except IndexError:
              print ("[ERROR] IndexError: " + str(current_row_number) )
  
          current_row_number +=1    
  
  
  def main():
  
      project_list = &lt;get from database&gt;    # 270 x 70
  
      root = Tkinter.Tk()
  
      canvas = Tkinter.Canvas(root, borderwidth=0, background="#ffffff")
      frame = Tkinter.Frame(canvas, background="#ffffff")
  
      canvas.pack(side="left", fill="both", expand=True)
      canvas.create_window((4,4), window=frame, anchor="nw")
  
      frame.bind("&lt;Configure&gt;", lambda event, canvas=canvas: onFrameConfigure(canvas))
  
      populate_using_tkinter(frame, project_list) 
  
      root.geometry("1000x600")
  
      root.mainloop()
  </code></pre>