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.4.tar.gz
(3.8 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.4-py3-none-any.whl
(4.2 kB
view details)
File details
Details for the file starri-1.4.tar.gz.
File metadata
- Download URL: starri-1.4.tar.gz
- Upload date:
- Size: 3.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dcf269fa21f0ff2db10d2ff980daa5b33de323dae0facc2ba637e6e21833a3ad
|
|
| MD5 |
efebac7b886af0b9d077b67dc7bdcf24
|
|
| BLAKE2b-256 |
bbf6de10e55c152a1234967ca45cb21c6c36f16e9e9ed0266ca08b80c577ba6f
|
File details
Details for the file starri-1.4-py3-none-any.whl.
File metadata
- Download URL: starri-1.4-py3-none-any.whl
- Upload date:
- Size: 4.2 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 |
162246065dd0ed31a2bc40ecd9d52b15548ac1426d8620c2975e3a9dcb118c6e
|
|
| MD5 |
ce1ead120ec5f92801d6a5dcf4b3c21c
|
|
| BLAKE2b-256 |
57df181e38d6b8f41987bbacb293fbdbdaeda479fbff40bfe7cc1f0f92e77b36
|