Skip to main content

The project help you to quickly build layouts in terminal (命令行ui布局工具)

Project description

terminal_layout

The project help you to quickly build layouts in terminal
(这个一个命令行ui布局工具)
https://github.com/gojuukaze/terminal_layout/raw/master/pic/demo.gif

Some extensions base on terminal_layout

progress.gif

choice.gif


** video demo **

https://asciinema.org/a/226120.svg

install

pip install terminal-layout

Dependencies

  • Python 2.7, 3.5+ (maybe 3.4)
  • Linux, OS X, and Windows systems.

Usage

  • easy demo:
import time
from terminal_layout import *

ctl = LayoutCtl.quick(TableLayout,
                      # table id: root
                      [
                          [TextView('t1', 'Hello World!', width=Width.fill, back=Back.blue)],  # <- row id: root_row_0,
                          [TextView('t2', '', fore=Fore.magenta)],  # <- row id: root_row_1,
                      ],
                      )

# or layout=ctl.get_layout()
layout = ctl.find_view_by_id('root')
layout.set_width(20)

# default: auto_re_draw=True
ctl.draw()

# call delay_set_text() must be set auto_re_draw=True,
# otherwise you must start a thread to call re_draw() by yourself
ctl.find_view_by_id('t2').delay_set_text('你好,世界!', delay=0.2)

time.sleep(0.5)
row3 = TableRow.quick_init('', [TextView('t3', 'こんにちは、世界!')])
layout.add_view(row3)

# If you call draw() with auto_re_draw=True, you must stop()
ctl.stop()

image2

  • disable auto_re_draw
import time
from terminal_layout import *

ctl = LayoutCtl.quick(TableLayout,
                      # table id: root
                      [
                          [TextView('t1', 'Hello World!', width=Width.fill, back=Back.blue)],  # <- row id: root_row_1,
                          [TextView('t2', '', fore=Fore.magenta)],  # <- row id: root_row_2,
                      ],
                      )


layout = ctl.find_view_by_id('root')
layout.set_width(20)

ctl.draw(auto_re_draw=False)

ctl.find_view_by_id('t2').set_text('你好,世界!')
ctl.re_draw()

time.sleep(0.5)
row3 = TableRow.quick_init('', [TextView('t3', 'こんにちは、世界!')])
layout.add_view(row3)
ctl.re_draw()

# don't need call stop()
# ctl.stop()
  • use python2 unicode
# -*- coding: utf-8 -*-
from terminal_layout import *
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

ctl = LayoutCtl.quick(TableLayout,
                      [
                          [TextView('', u'中文,你好', back=Back.cyan, width=Width.wrap)],
                          [TextView('', u'中文,你好', back=Back.cyan, width=6)],
                          [TextView('', u'日本語,こんにちは', back=Back.cyan, width=Width.wrap)],
                      ]

                      )

ctl.draw()

image3

Properties

  • fore & back
TextView('','fore',fore=Fore.red)
TextView('','back',back=Back.red)
https://github.com/gojuukaze/terminal_layout/raw/master/pic/color.jpeg
  • style
TextView('','style',style=Style.dim)
https://github.com/gojuukaze/terminal_layout/raw/master/pic/style.jpeg
  • width
TextView('','width',width=10)
https://github.com/gojuukaze/terminal_layout/raw/master/pic/width.jpeg
  • weight
TextView('','weight',weight=1)
https://github.com/gojuukaze/terminal_layout/raw/master/pic/weight.jpeg
  • gravity
TextView('','gravity',gravity=Gravity.left)
https://github.com/gojuukaze/terminal_layout/raw/master/pic/gravity.jpeg
  • visibility
TextView('','',visibility=Visibility.visible)
https://github.com/gojuukaze/terminal_layout/raw/master/pic/visibility.jpeg
  • ex_style (not support windows)
TextView('','ex_style',style=Style.ex_blink)
https://github.com/gojuukaze/terminal_layout/raw/master/pic/ex_style.jpeg
  • ex_fore & ex_back (not support windows)
TextView('','ex_fore',fore=Fore.ex_red_1)
TextView('','ex_back',back=Back.ex_red_1)
https://github.com/gojuukaze/terminal_layout/raw/master/pic/ex_color.jpeg

LICENSE

GPLv3

Thanks

  • colorama : Simple cross-platform colored terminal text in Python
  • colored : Very simple Python library for color and formatting in terminal

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for terminal-layout, version 2.0.2
Filename, size File type Python version Upload date Hashes
Filename, size terminal_layout-2.0.2-py3-none-any.whl (34.4 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size terminal_layout-2.0.2.tar.gz (24.9 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page