def _setup_manager(self): """ Setup the layout manager. This method will create or reset the layout manager and update it with a new layout table. """ # Layout ownership can only be transferred *after* the init # layout method is called, as layout occurs bottom up. The # manager is only created if ownership is unlikely to change. share_layout = self.declaration.share_layout if share_layout and isinstance(self.parent(), QtContainer): del self._layout_timer del self._layout_manager return manager = self._layout_manager if manager is None: item = QtContainerItem() item.declaration = self.declaration item.widget_item = QWidgetItem(self.widget) item.origin = LayoutPoint() item.offset = LayoutPoint() item.margins_func = self.margins_func manager = self._layout_manager = LayoutManager(item) manager.set_items(self._create_layout_items())
def init_cns_layout(self): """ Initialize the constraints layout. """ # Layout ownership can only be transferred *after* this init # layout method is called, since layout occurs bottom up. So, # we only initialize a layout manager if ownership is unlikely # to be transferred. if not self.will_transfer(): offset_table, layout_table = self._build_layout_table() cns = self._generate_constraints(layout_table) manager = LayoutManager() manager.initialize(cns) self._offset_table = offset_table self._layout_table = layout_table self._layout_manager = manager self._refresh = self._build_refresher(manager) self._update_sizes()
def init_layout(self): """ Initializes the layout for the container. """ super(QtContainer, self).init_layout() # Layout ownership can only be transferred *after* this init # layout method is called, since layout occurs bottom up. So, # we only initialize a layout manager if we are not going to # transfer ownership at some point. if not self.will_transfer(): offset_table, layout_table = self._build_layout_table() cns = self._generate_constraints(layout_table) # Initializing the layout manager can fail if the objective # function is unbounded. We let that failure occur so it can # be logged. Nothing is stored until it succeeds. manager = LayoutManager() manager.initialize(cns) self._offset_table = offset_table self._layout_table = layout_table self._layout_manager = manager self._refresh = self._build_refresher(manager) self.refresh_sizes()