You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Eugenio Parodi 337c7ec150 Updated README.md with demo run and link to external pyTermTk projects 4 years ago
.github/workflows Removed python 3.7 test 5 years ago
TermTk TTkTextEdit: Fix crash with empty widget, added 'clear' method 4 years ago
demo demo vscode like layout prototype 4 years ago
docs Added warning for deprecated TtkWidget -> addWidget/removeWidget 4 years ago
tests Added TextEdit test using Pygments highlighter 4 years ago
tools Change the title of the demo window 4 years ago
tutorial Minor fix in the calculator tutorial 4 years ago
.gitignore Updated README.md with demo run and link to external pyTermTk projects 4 years ago
LICENSE Formalizing the structure 5 years ago
Makefile Added Checkbox documentation and refined doc structure 4 years ago
README.md Updated README.md with demo run and link to external pyTermTk projects 4 years ago
setup.py removed the apache licese from setup 4 years ago

README.md

Linux Usage Python pyTermTk_version Test Status pypi_version pypi_version

screenshot

python Terminal Toolkit

Text-based user interface library (TUI) Evolved from the discontinued project pyCuT and inspired by a mix of Qt5,GTK, and tkinter api definition with a touch of personal interpretation

screenshot

Features

  • Basic widgets for TUI development (Button, Label, checkbox, ...)
  • Specialized widgets to improve the usability (Windows, Frames, Tables, ...)
  • QT Like Layout system to help arrange the widgets in the terminal
  • True color support
  • [TBD] Fullsize/Halfsize UTF-8 characters

Limitations

  • Only the key combinations forwarded by the terminal emulator used are detected (ALT,CTRL may not be handled)

Try

screenshot

Tutorial

Be inspired by the tutorial examples

Api Definitions

Don't get bored by the Api Definitions

Install/Upgrade

pyTermTk is available on PyPI

pip3 install --upgrade pyTermTk

Quick Test/Try - no install required

Clone

clone git@github.com:ceccopierangiolieugenio/pyTermTk.git
cd pyTermTk

Run Basic (non ui) input test

python3 tests/test.input.py

Demos

# Press CTRL-C to exit
# the logs are written to "session.log"
# add "-f" option to run it in "fullscreen" :-D

# Showcase Demo
python3 demo/demo.py -f

# Paint demo
python3 demo/paint.py

# VSCode like d'n d layout demo
python3 demo/ttkode.py

# early gittk demo
python3 demo/gittk.py

# Text edit with "Pygments" highlight integrated
# it require pygments
#   pip install pygments
python3 tests/test.ui.018.TextEdit.Pygments.py REAMDE.md

Profiling

cProfile, cProfilev
python3 -m cProfile -o profiler.bin tests/test.ui.004.py

# install cprofilev:
#     pip3 install cprofilev
cprofilev -f profiler.bin
# open http://127.0.0.1:4000
pyroscope

pyroscope can be used as well for profiling

Projects using pyTermTk

  • tlogg - A fast, advanced log explorer.
  • pytest-fold - A Pytest plugin to make console output more manageable when there are multiple failed tests
  • Honourable mention

    • bpytop - Linux/OSX/FreeBSD resource monitor
      This was the base inspiration for my core library
  • Python

    • urwid - Console user interface library for Python
    • pyTermGUI - A simple yet powerful TUI framework for your Python (3.7+) applications
    • Textual - TUI (Text User Interface) framework for Python inspired by modern web development
    • Rich - Python library for rich text and beautiful formatting in the terminal
    • PyCuT - terminal graphic library loosely based on QT api (my previous failed attempt)
    • pyTooling.TerminalUI - A set of helpers to implement a text user interface (TUI) in a terminal.
  • Non Python