1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/gojuukaze-terminal_layout

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.ZH.md 5.1 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 26.11.2024 19:38 3f64606

terminal_layout

Проект помогает быстро создавать макеты в терминале.
(Это инструмент для создания пользовательского интерфейса командной строки).

demo_v2_1.gif


Расширения на основе terminal_layout

progress.gif

choice.gif


Видеодемонстрация

asciicast

Ссылка

Установка

pip install terminal-layout

Зависимости

  • Python 2.7, 3.5+ (возможно, 3.4)
  • Системы Linux, OS X и Windows.

Использование

  • Простая демонстрация:
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_00,
                          [TextView('t2', '', fore=Fore.magenta)],  # <- row id: root_row_1,
                      ],
                      )

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

# default: auto_re_draw=True
ctl.draw()

# Если используется delay_set_text(), необходимо установить auto_re_draw в True, иначе вам нужно будет самостоятельно выполнить re_draw() в потоке
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)

# Если при выполнении draw() установлено auto_re_draw=True, вы должны выполнить stop()
ctl.stop()

  • Отключить auto_re_draw
import time
from terminal_layout import *

ctl = LayoutCtl.quick(TableLayout,
                      [
                          [TextView('t1', 'Hello World!', width=Width.fill, back=Back.blue)],
                          [TextView('t2', '', fore=Fore.magenta)],
                      ],
                      )

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()

# Не нужно выполнять stop()
# ctl.stop()
  • Использовать юникод в Python2
# -*- 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()

Свойства View

  • fore & back
TextView('','fore',fore=Fore.red)
TextView('','back',back=Back.red)
  • style
TextView('','style',style=Style.dim)
  • width
TextView('','width',width=10)
  • weight
TextView('','weight',weight=1)
  • gravity
TextView('','gravity',gravity=Gravity.left)
  • visibility
TextView('','',visibility=Visibility.visible)
  • ex_style (не поддерживается в Windows)
TextView('','ex_style',style=Style.ex_blink)
  • ex_fore & ex_back (не поддерживается в Windows)
TextView('','ex_fore',fore=Fore.ex_red_1)
TextView('','ex_back',back=Back.ex_red_1)

LICENSE

GPLv3

Спасибо

  • colorama: простой кроссплатформенный цветной текст в терминале на Python.

  • colored: очень простая библиотека Python для работы с цветом и форматированием в терминале.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/gojuukaze-terminal_layout.git
git@api.gitlife.ru:oschina-mirror/gojuukaze-terminal_layout.git
oschina-mirror
gojuukaze-terminal_layout
gojuukaze-terminal_layout
master