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.7.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
File details
Details for the file starri-1.4.7.tar.gz.
File metadata
- Download URL: starri-1.4.7.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 |
e0e7cd03ca8941c42189ec20944006df60b1bfe2b86feb4c14a8309a41c97ecf
|
|
| MD5 |
f0be2d6777894ec9fe392291a1564d10
|
|
| BLAKE2b-256 |
f84063999c62e009a044e959800545eb81352e787b3acf63123c11b4caaf8660
|
File details
Details for the file starri-1.4.7-py3-none-any.whl.
File metadata
- Download URL: starri-1.4.7-py3-none-any.whl
- Upload date:
- Size: 4.0 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 |
81a3a382de7d9b072abf1a2c4362ea2c14f79b810b3de16b1af8d2b8a93a6748
|
|
| MD5 |
a165751b83bd56e33c2543a751e2e982
|
|
| BLAKE2b-256 |
d942c41cd483cb65c9c1cf829f489374ffd2b91ddeeb992b87477720d830653f
|