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, subsections, progress bars, and confirmation prompts.

Reason this release was yanked:

forgot to remove debugging prints

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

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

ui.begin()

Creating Subsections

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

# Create a nested subsection inside "Settings"
ui.add_sub_section(
    ["Option 1", "Option 2"],
    [func1, func2],
    section="Audio",
    uppersection="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")

#Wait for user input
ui.hold()

# Wait 5 seconds
ui.hold(time=5)

# Custom message and wait for input
ui.hold(msg="Press enter to continue")

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.10.tar.gz (3.4 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.10-py3-none-any.whl (3.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: py_menu_tui-0.2.10.tar.gz
  • Upload date:
  • Size: 3.4 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.10.tar.gz
Algorithm Hash digest
SHA256 2db844bb4f00b5f38c77852c1276936d5123c1d262b2241fa355005cac37318a
MD5 8f6a5ff93ff80f97310e91d76b4abb4a
BLAKE2b-256 97802238397338b7af1eb1f891b8086846476e49cc6a891bdf2454966a2a9581

See more details on using hashes here.

File details

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

File metadata

  • Download URL: py_menu_tui-0.2.10-py3-none-any.whl
  • Upload date:
  • Size: 3.9 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.10-py3-none-any.whl
Algorithm Hash digest
SHA256 d8b5b0744f4f9d12b94c40e40a413589761f93a3d413658445c9f2899b1760f7
MD5 d7f792b0b51383c27f96824dcabb8193
BLAKE2b-256 6c48c9fdc4b12687a68a3e8e6676a2925380e9108f0beb07b7c5823c97bf8c20

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