A terminal-based menu system using blessed.
Project description
Starri
Starri is a simple Python library for creating terminal-based menus. It supports navigation with the arrow keys and submenus for a dynamic user experience.
Installation
You can install Starri with pip:
pip install starri
Usage
Here’s how to use Starri:
# Comments unnecessary, just for explanation
from starri import *
def main():
starri(
title = "Main Menu", # Shown at the top of the screen
content = {
spacer() # Blank line, cannot be selected
text("Please Select an Option Below.") # Text, cannot be selected
spacer() # Blank line, cannot be selected
option("Option 1", option1()) # Basic option, can be selected. first arg is the text for the option, second arg is what it does if selected
option("Option 2", option2()) # Basic option, can be selected. first arg is the text for the option, second arg is what it does if selected
option("Option 3", option3()) # Basic option, can be selected. first arg is the text for the option, second arg is what it does if selected
option("Option 4", option4()) # Basic option, can be selected. first arg is the text for the option, second arg is what it does if selected
option("Option 5", option5()) # Basic option, can be selected. first arg is the text for the option, second arg is what it does if selected
option("Exit", exit()) # Basic option, can be selected. first arg is the text for the option, second arg is what it does if selected
}
)
def option1():
starri(
title = "You Pressed Option 1!" # Shown at the top of the screen
content = {
option("Go Back", main()) # Basic option, can be selected. first arg is the text for the option, second arg is what it does if selected
}
)
def option2():
starri(
title = "You Pressed Option 2!" # Shown at the top of the screen
content = {
spacer() # Blank line, cannot be selected
text("Example Confirmation?") # Text, cannot be selected
spacer() # Blank line, cannot be selected
sidebyside("Yes", dosomething(), "No", cancel()) # Two options, side by side. navigate betweeen the two by using the left and right arrow keys. horizontally centered by default, and spaced evenly.
}
)
def option3():
starri(
title = "You Pressed Option 3!" # Shown at the top of the screen
content = {
spacer() # Blank line, cannot be selected
text("Checkboxes Example") # Text, cannot be selected
spacer() # Blank line, cannot be selected
checkbox(
"Checkbox 1", False, # First arg is the text for the checkbox, second arg is whether it is checked by default
"Checkbox 2", False, # First arg is the text for the checkbox, second arg is whether it is checked by default
"Checkbox 3", False, # First arg is the text for the checkbox, second arg is whether it is checked by default
"Checkbox 4", False, # First arg is the text for the checkbox, second arg is whether it is checked by default
"Checkbox 5", False, # First arg is the text for the checkbox, second arg is whether it is checked by default
submitbutton("Submit", exampleactionaftercheckboxes()) # Text for the submit button
)
}
)
def exampleactionaftercheckboxes():
if box1:
print("Checkbox 1 is checked!")
if box2:
print("Checkbox 2 is checked!")
if box3:
print("Checkbox 3 is checked!")
if box4:
print("Checkbox 4 is checked!")
if box5:
print("Checkbox 5 is checked!")
def option4():
starri(
title = "You Pressed Option 4!" # Shown at the top of the screen
content = {
spacer() # Blank line, cannot be selected
text("Text Input Example") # Text, cannot be selected
spacer() # Blank line, cannot be selected
textinput("Enter some text:", exampleactionaftertextinput()) # Text input, first arg is the prompt, second arg is what to do with the input. second arg is called on enter when selected
}
)
if __name__ == "__main__":
main()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
starri-1.5.tar.gz
(3.5 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
starri-1.5-py3-none-any.whl
(3.7 kB
view details)
File details
Details for the file starri-1.5.tar.gz.
File metadata
- Download URL: starri-1.5.tar.gz
- Upload date:
- Size: 3.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c68dade1428cb5505dada38d1967d10d2c0535a6cce37fb4e429cd8e0e8eb04e
|
|
| MD5 |
cc5223a7c6d661703850cdea608d7025
|
|
| BLAKE2b-256 |
c50639d9aaf0ca1dac4dccba5c92c310abd20c1e8d7fcb80d176f1a3f985ba7e
|
File details
Details for the file starri-1.5-py3-none-any.whl.
File metadata
- Download URL: starri-1.5-py3-none-any.whl
- Upload date:
- Size: 3.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4542b802284710b59ad566a04729eb6fee37910f942dbab4f333600450b2ac5b
|
|
| MD5 |
0c043a303e3abcb668c7e5763240671f
|
|
| BLAKE2b-256 |
d4a27fa23df599b88663a873340bece5e89d7838b88b87fbbd06736e931abf12
|