Page Contents

This Page


An Enaml widget is a toolkit-independent abstraction. The widget classes defined in the enaml.widgets submodule establish a message passing interface which is implemented by a given GUI toolkit backend. In this way, a widget interface is not tied to any particular implementation.


An Enaml widget’s interface describes the attributes and events that the widget exposes as its API. Changes to these attributes and events cause message to be sent back and forth between the Enaml widget and a given toolkit implemenation. Enaml automatically orchestrates this message passing in an asynchronous manner.

Inheritance diagram of enaml.widgets.abstract_button.AbstractButton, enaml.widgets.action.Action, enaml.widgets.action_group.ActionGroup, enaml.widgets.bounded_date.BoundedDate, enaml.widgets.bounded_datetime.BoundedDatetime, enaml.widgets.bounded_time.BoundedTime, enaml.widgets.calendar.Calendar, enaml.widgets.check_box.CheckBox, enaml.widgets.combo_box.ComboBox, enaml.widgets.constraints_widget.ConstraintsWidget, enaml.widgets.container.Container, enaml.widgets.control.Control, enaml.widgets.date_selector.DateSelector, enaml.widgets.datetime_selector.DatetimeSelector, enaml.widgets.dock_pane.DockPane, enaml.widgets.field.Field, enaml.widgets.file_dialog.FileDialog, enaml.widgets.flow_area.FlowArea, enaml.widgets.flow_item.FlowItem, enaml.widgets.form.Form, enaml.widgets.group_box.GroupBox, enaml.widgets.html.Html, enaml.widgets.image_view.ImageView, enaml.widgets.label.Label, enaml.widgets.main_window.MainWindow, enaml.widgets.mdi_area.MdiArea, enaml.widgets.mdi_window.MdiWindow,, enaml.widgets.menu_bar.MenuBar, enaml.widgets.mpl_canvas.MPLCanvas, enaml.widgets.notebook.Notebook,, enaml.widgets.progress_bar.ProgressBar, enaml.widgets.push_button.PushButton, enaml.widgets.radio_button.RadioButton, enaml.widgets.scroll_area.ScrollArea, enaml.widgets.separator.Separator, enaml.widgets.slider.Slider, enaml.widgets.spin_box.SpinBox, enaml.widgets.split_item.SplitItem, enaml.widgets.splitter.Splitter, enaml.widgets.stack.Stack, enaml.widgets.stack_item.StackItem, enaml.widgets.time_selector.TimeSelector, enaml.widgets.tool_bar.ToolBar, enaml.widgets.traits_item.TraitsItem, enaml.widgets.web_view.WebView, enaml.widgets.widget.Widget, enaml.widgets.window.Window

Base widgets

enaml.widgets.widget.Widget([parent]) The base class of all visible widgets in Enaml.
enaml.widgets.constraints_widget.ConstraintsWidget([...]) A Widget subclass which adds constraint information.
enaml.widgets.control.Control([parent]) A widget which represents a leaf node in the hierarchy.
enaml.widgets.abstract_button.AbstractButton([...]) A base class which provides functionality common for several
enaml.widgets.bounded_date.BoundedDate([parent]) A base class for components which edit a Python
enaml.widgets.bounded_datetime.BoundedDatetime([...]) A base class for use with widgets that edit a Python
enaml.widgets.bounded_time.BoundedTime([parent]) A base class for use with widgets that edit a Python

Standard widgets

enaml.widgets.action.Action([parent]) A non visible widget used in a ToolBar or Menu.
enaml.widgets.action_group.ActionGroup([parent]) A non visible widget used to group actions.
enaml.widgets.calendar.Calendar([parent]) A bounded date control which edits a Python using
enaml.widgets.check_box.CheckBox([parent]) An checkable button represented by a standard check box widget.
enaml.widgets.combo_box.ComboBox([parent]) A drop-down list from which one item can be selected at a time.
enaml.widgets.date_selector.DateSelector([...]) A widget to edit a Python object.
enaml.widgets.datetime_selector.DatetimeSelector([...]) A datetime widget that displays a Python datetime.datetime
enaml.widgets.field.Field([parent]) A single line editable text widget.
enaml.widgets.file_dialog.FileDialog([parent]) A dialog widget that allows the user to open and save files and
enaml.widgets.html.Html([parent]) An extremely simple widget for displaying HTML.
enaml.widgets.image_view.ImageView([parent]) A widget which can display an Image with optional scaling.
enaml.widgets.label.Label([parent]) A simple control for displaying read-only text.[parent]) A widget used as a menu in a MenuBar.
enaml.widgets.menu_bar.MenuBar([parent]) A widget used as a menu bar in a MainWindow.
enaml.widgets.mpl_canvas.MPLCanvas([parent]) A control which can be used to embded a matplotlib figure.
enaml.widgets.progress_bar.ProgressBar([parent]) A control which displays a value as a ticking progress bar.
enaml.widgets.push_button.PushButton([parent]) A button control represented by a standard push button widget.
enaml.widgets.radio_button.RadioButton([parent]) An exclusive checkable button represented by a standard radio button widget.
enaml.widgets.separator.Separator([parent]) A widget which draws a horizontal or vertical separator line.
enaml.widgets.slider.Slider([parent]) A simple slider widget that can be used to select from a range
enaml.widgets.spin_box.SpinBox([parent]) A spin box widget which manipulates integer values.
enaml.widgets.time_selector.TimeSelector([...]) A time widget that displays a Python datetime.time object using
enaml.widgets.tool_bar.ToolBar([parent]) A widget which displays a row of tool buttons.
enaml.widgets.traits_item.TraitsItem([parent]) A control which can be used to embded a traits ui view.
enaml.widgets.web_view.WebView([parent]) A widget which displays a web page.

Window widgets

enaml.widgets.main_window.MainWindow([parent]) A top level main window widget.
enaml.widgets.mdi_window.MdiWindow([parent]) A widget which can be used as a window in an MdiArea.
enaml.widgets.window.Window([parent]) A top-level Window component.

Container and Layout widgets

enaml.widgets.container.Container([parent]) A ConstraintsWidget subclass that provides functionality for
enaml.widgets.dock_pane.DockPane([parent]) A widget which can be docked in a MainWindow.
enaml.widgets.flow_area.FlowArea([parent]) A widget which lays out its children in flowing manner, wrapping
enaml.widgets.flow_item.FlowItem([parent]) A widget which can be used as an item in a FlowArea.
enaml.widgets.form.Form([parent]) A Container subclass that arranges its children in two columns.
enaml.widgets.group_box.GroupBox([parent]) The GroupBox container, which introduces a group of widgets with
enaml.widgets.mdi_area.MdiArea([parent]) A widget which acts as a virtual window manager for other top level widget.
enaml.widgets.notebook.Notebook([parent]) A component which displays its children as tabbed pages.[parent]) A widget which can be used as a page in a Notebook control.
enaml.widgets.scroll_area.ScrollArea([parent]) A widget which displays a single child in a scrollable area.
enaml.widgets.split_item.SplitItem([parent]) A widget which can be used as an item in a Splitter.
enaml.widgets.splitter.Splitter([parent]) A widget which displays its children in separate resizable compartements that are connected with a resizing bar.
enaml.widgets.stack.Stack([parent]) A component which displays its children as a stack of widgets,
enaml.widgets.stack_item.StackItem([parent]) A widget which can be used as an item in a Stack.

Standard library

A number of additional widget types are available in the standard widget library. These are not top-level classes implemented in Python, but are instead Enaml widgets implemented using enamldef declarations.