File: form.enaml

package info (click to toggle)
python-enaml 0.19.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 13,284 kB
  • sloc: python: 31,443; cpp: 4,499; makefile: 140; javascript: 68; lisp: 53; sh: 20
file content (47 lines) | stat: -rw-r--r-- 1,535 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#------------------------------------------------------------------------------
# Copyright (c) 2013-2025, 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 the `Form` widget.

A `Form` is a simple subclass of `Container` which automatically lays
out it children in two columns, neatly aligning the widget edges. If
a `Form` has an odd number of children, the last child will span both
columns. The typical use case of a `Form` alternates `Label` and `Field`
instances, but there is not restriction on the types of children used
with a form, except that they be constrainable.

<< autodoc-me >>
"""
from enaml.layout.api import hbox
from enaml.widgets.api import Window, Form, Container, Label, Slider, Field


enamldef Main(Window):
    Form:
        Label:
            text = 'First Name'
        Field:
            pass
        Label:
            text = 'Last Name'
        Field:
            pass
        Label:
            text = 'Age'
        Container:
            padding = 0
            constraints = [
                hbox(lbl, sldr),
                lbl.v_center == sldr.v_center,
            ]
            Label: lbl:
                text << '%d' % sldr.value
                constraints = [width == 25]
            Slider: sldr:
                pass
        Field:
            placeholder = 'Odd Number Child'