File: splitter.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 (100 lines) | stat: -rw-r--r-- 2,601 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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#------------------------------------------------------------------------------
# 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 `Splitter` widget.

A `Splitter` is a widget which can hold an arbitrary number of children
which must be instances of `Container`. The `Splitter` will separate
each `Container` with a bar which can be dragged by the user to change
the space allocated to the containers. This example shows how complex
arrangements can be acheived by nesting `Splitter` widgets inside
child `Container` widgets.

Implementation notes:

    The splitter support on Wx is poor. Certain behaviors, like initial
    splitter sizing does not work well (if at all). If a production
    application requires splitter support, prefer the Qt backend over
    Wx (this is generally a good life-rule).

<< autodoc-me >>
"""
from enaml.widgets.api import (
    Splitter, SplitItem, Form, Container, Window, Label, Field, Html,
)


enamldef MyForm(Form):
    Label:
        text = "First name:"
    Field:
        pass
    Label:
        text = "Last name:"
    Field:
        pass
    Label:
        text = "Address:"
    Field:
        pass
    Label:
        text = ""
    Field:
        pass
    Label:
        text = "City:"
    Field:
        pass
    Label:
        text = "State:"
    Field:
        pass
    Label:
        text = "Postal Code:"
    Field:
        pass
    Label:
        text = "Country:"
    Field:
        pass


enamldef MyHtmlWidgets(Container):
    padding = 0
    Splitter:
        orientation = 'vertical'
        SplitItem:
            Container:
                Html:
                    resist_height = 'weak'
                    source = '<center><h1>Hello World!</h1></center>'
        SplitItem:
            Container:
                Html:
                    resist_height = 'weak'
                    source = '<center><h1>Hello Enaml!</h1></center>'


enamldef Main(Window):
    Container:
        padding = 0
        Splitter:
            SplitItem:
                stretch = 0
                collapsible = False
                MyForm:
                    pass
            SplitItem:
                MyForm:
                    pass
            SplitItem:
                stretch = 2
                MyHtmlWidgets:
                    pass
            SplitItem:
                MyForm:
                    pass