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.8.tar.gz
(3.9 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.8.tar.gz.
File metadata
- Download URL: starri-1.4.8.tar.gz
- Upload date:
- Size: 3.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aa6c1f1986880dc876af28640fc88c09e185dd5bdcd92f075d1cf80ea84f76b8
|
|
| MD5 |
3d8f7a92d8654f70486fef0cb45da3d6
|
|
| BLAKE2b-256 |
5f437c5ee87f3ffb5be9bdea46c6c325dd75fddc46f807d8c8f9b9cbfa5c396d
|
File details
Details for the file starri-1.4.8-py3-none-any.whl.
File metadata
- Download URL: starri-1.4.8-py3-none-any.whl
- Upload date:
- Size: 4.1 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 |
e43c62fe239f9e67843df582e9a6a3c68c7e007901bb938b719f54eff3f8982b
|
|
| MD5 |
c2ff0fa5b1c1e81924dae7f919005f2f
|
|
| BLAKE2b-256 |
782b2f6bc1be56c70e39815249288258c16688121a4e767165487ca45f40f5f7
|