コード例 #1
0
def generate_layout():
    """Generate home screen layout"""

    boxes.DOUBLE_TOP.set_chars_of(Container)
    Container.set_style("border", lambda depth, item: foreground(item, 234))
    Container.set_style("corner", lambda depth, item: foreground(item, 234))
    Splitter.set_style("separator", lambda depth, item: foreground(item, 234))
    Splitter.set_char("separator", boxes.DOUBLE_TOP.borders[0])

    corners = boxes.DOUBLE_TOP.corners.copy()
    corners[0] += " bezo "
    corners[1] = " calc " + corners[1]
    root = outer_container()
    root.set_char("corner", corners)
    root.forced_height = 32
    root.vert_align = Container.VERT_ALIGN_TOP

    header = Container() + Label("title")
    header[-1].id = "header_title"
    root += header

    inner = Container()
    inner.id = "inner"
    inner_title = (Splitter("39;36;36") + Label("[242 bold]Name:") +
                   Label("[242 bold]Worth in dollars:") +
                   Label("[242 bold]Worth in Bezos:"))
    inner_title.id = "inner_title"
    inner += inner_title

    for i in range(24):
        row = Splitter("39;36;36")
        if i > 0:
            row.id = f"inner_row{i - 1}"

        row += Label(align=Label.ALIGN_LEFT)
        row += Label()
        row += Label()
        inner += row

    root += inner

    root += Label()
    field = InputField(prompt=" ")
    field.id = "field"
    root += field

    with open(to_local(LAYOUT_DIR + "/bezos.ptg"), "w") as datafile:
        serializer.dump_to_file(root, datafile)
コード例 #2
0
ファイル: hello_world.py プロジェクト: bczsalba/pytermgui
def random_rgb() -> tuple[int, int, int]:
    """Get random rgb color"""

    return ";".join(random_255() for _ in range(3))


def random_hex() -> str:
    """Get random hex color"""

    rgb = tuple(int(color) for color in random_rgb().split(";"))
    return "#" + "%02x%02x%02x" % rgb


# set up styles
border_markup = MarkupFormatter("[bold 60]{item}")
Container.set_style("border", border_markup)
Container.set_style("corner", border_markup)
Splitter.set_style("separator", border_markup)
Splitter.set_char("separator", boxes.SINGLE.borders[0])
boxes.SINGLE.set_chars_of(Container)

# create root Container
root = Container() + Prompt("[222 bold]hello", "[72]world")
boxes.DOUBLE_TOP.set_chars_of(root)

# create inner Container, add elements to it
inner = Container()
inner += Label("This is an inner [italic bold 24]label")
inner += Label(
    "All [208]widgets[/fg] support [bold @61 141]markup",
)