Skip to main content

This project implements a keyboard-controlled text user interface (TUI) for the terminal that allows users to navigate menus and nested subsections using simple key inputs (w, s, Enter, Esc). It provides a lightweight framework for building interactive CLI applications with features like menu navigation, dynamic subsections, progress bars, and confirmation prompts.

Project description

py_menu_tui

py_menu_tui is a lightweight terminal user interface (TUI) navigation framework for Python.
It allows developers to quickly build interactive command-line menus with keyboard navigation and nested subsections.

The interface is controlled using simple keys and is designed for Windows terminals using msvcrt.


Features

  • Keyboard navigation (w / s)
  • Nested menu sections
  • Simple function binding to menu entries
  • Scrollable menus
  • Progress bar utility
  • Confirmation prompts
  • No external dependencies

Installation

Currently the package can be installed with:

pip install py_menu_tui

Controls

Key Action
w Move up
s Move down
Enter Select option
Esc Go back
Ctrl+C Exit program

Example

from py_menu_tui import UserInterface

def hello():
    print("Hello World")

ui = UserInterface(1)# The value must match the length of setup_names

ui.setup(
    ["Say Hello"],#<setup_names
    [hello]
)

ui.begin()

Creating Subsections

ui.add_sub_section(
    ["Option 1", "Option 2"],
    [func1, func2],
    section="Settings"
)

Utilities

#Progressbar
from py_menu_tui import progressbar
progressbar(50)

#Clear Terminal
from py_menu_tui import clear
clear()

#Confirmation Prompt
from py_menu_tui import confirm

if confirm("Continue?"):
    print("Confirmed")

Requirements

  • Python 3+
  • Windows terminal (uses msvcrt)
  • No external dependencies

License

This project is licensed under the MIT License.

Project details


Download files

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

Source Distribution

py_menu_tui-0.2.3.tar.gz (3.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

py_menu_tui-0.2.3-py3-none-any.whl (3.6 kB view details)

Uploaded Python 3

File details

Details for the file py_menu_tui-0.2.3.tar.gz.

File metadata

  • Download URL: py_menu_tui-0.2.3.tar.gz
  • Upload date:
  • Size: 3.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.5

File hashes

Hashes for py_menu_tui-0.2.3.tar.gz
Algorithm Hash digest
SHA256 12ce8204e44565ceb588850fe39916fcb98f8d79b70e99a2c5ff78bdcc059fb4
MD5 93f0c886c2b83570cfa81838feb1ccad
BLAKE2b-256 c71dc9a19c8302773a567d409e4382de02f1166bafd961a1af9093e463b5d2d7

See more details on using hashes here.

File details

Details for the file py_menu_tui-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: py_menu_tui-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 3.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.5

File hashes

Hashes for py_menu_tui-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 64b71bb57d7238dc057810112a48f39b32d48dcfc178436a980c2a89bd814827
MD5 d4576231790e636ec1833129db8f23b4
BLAKE2b-256 f803e01ea3177341ef017c9e4697056c700e1431e923558b949d63d8c734ff9e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page