Window Children Example
An example of using children with a Window
widget.
The Window
widget serves as the fundamental top level widget for UIs
in Enaml. Window
widgets may have at most one child widget which must
be an instance of Container
. This Container
is referred to as the
‘central widget’ of the UI. The sizing behavior of a Window
is largely
determined by the sizing constraints of the central widget.
In this example, we use a Container
and a few PushButton
widgets to
add content to the Window
. Clicking on the first PushButton
will
print the central widget of the window to the shell.
This example focuses on features of the Window
widget, see the other
examples for explanations of the other widgets and language features.
Tip
To see this example in action, download it from
window_children
and run:
$ enaml-run window_children.enaml
Screenshot

Example Enaml Code
#------------------------------------------------------------------------------
# Copyright (c) 2013, Nucleic Development Team.
#
# Distributed under the terms of the Modified BSD License.
#
# The full license is in the file LICENSE, distributed with this software.
#------------------------------------------------------------------------------
""" An example of using children with a `Window` widget.
The `Window` widget serves as the fundamental top level widget for UIs
in Enaml. `Window` widgets may have at most one child widget which must
be an instance of `Container`. This `Container` is referred to as the
'central widget' of the UI. The sizing behavior of a `Window` is largely
determined by the sizing constraints of the central widget.
In this example, we use a `Container` and a few `PushButton` widgets to
add content to the `Window`. Clicking on the first `PushButton` will
print the central widget of the window to the shell.
This example focuses on features of the `Window` widget, see the other
examples for explanations of the other widgets and language features.
<< autodoc-me >>
"""
from __future__ import print_function
from enaml.widgets.api import Window, Container, PushButton
enamldef Main(Window): main:
title = 'Hello World!'
Container:
PushButton:
text = 'Foo'
clicked :: print(main.central_widget())
PushButton:
text = 'Bar'
PushButton:
text = 'Baz'