A Widget subclass which adds constraint information.

class enaml.widgets.constraints_widget.ConstraintsWidget(parent=None, **kwargs)[source]

Bases: enaml.widgets.widget.Widget, enaml.layout.constrainable.ConstrainableMixin

A Widget subclass which adds constraint information.

A ConstraintsWidget is augmented with symbolic constraint variables which define a box model on the widget. This box model is used to declare constraints between this widget and other components which participate in constraints-based layout.

Constraints are added to a widget by assigning a list to the ‘constraints’ attribute. This list may contain raw Constraint objects, which are created by manipulating the symbolic constraint variables, or ConstraintHelper objects which generate Constraint objects on request.


The list of user-specified constraints or ConstraintHelpers.


A reference to the ProxyConstraintsWidget object.


Request a relayout from the proxy widget.

This will invoke the ‘request_relayout’ method on an active proxy. The proxy should collapse the requests as necessary.


A method which returns self or None based on the truthness of the argument.

This can be useful to easily turn off the effects of an object in constraints-based layout.


switch (bool) – A boolean which indicates whether this instance or None should be returned.


result – If ‘switch’ is boolean True, self is returned. Otherwise, None is returned.

Return type

self or None


Get the constraints to use for this component’s layout.

This method may be overridden by subclasses as needed to create custom constraints. It will be called when the relayout request has been made by the layout engine. The default implementation will return the list of ‘constraints’ defined by the user.