class_docstr: The module sizer uses the maximum best width of the setting
  edit controls to compute the column widths, then it sets the text
  controls to wrap within the remaining space, then it uses the best
  height of each text control to lay out the rows.
class_docstr_tok: ["The","module","sizer","uses","the","maximum","best","width","of","the","setting","edit","controls","to","compute","the","column","widths",",","then","it","sets","the","text","controls","to","wrap","within","the","remaining","space",",","then","it","uses","the","best","height","of","each","text","control","to","lay","out","the","rows","."]
code: def __init__(self, rows, cols=2):
      super(ModuleSizer, self).__init__()
      self.__rows = rows
      self.__cols = cols
      self.__min_text_width = 150
      self.__height_padding = 5
      self.__printed_exception = False
      self.__items = []
  
file_path: CellProfiler/src/frontend/cellprofiler/gui/module_view/_module_sizer.py
imports: import logging
  import wx
label_desc: Use image node_id 1 to create a new ModuleSizer object from inherited base classes: wx with example: obj = ModuleSizer(rows, cols)