Introduction to Blessed
Blessed is a Python library that provides convenient features for creating terminal interfaces and Text-based User Interfaces (TUI). This guide introduces Blessed along with numerous useful APIs and their code snippets, making it easier for developers to create impressive terminal-based programs.
Getting Started
To begin using Blessed, you must first install it:
import blessed term = blessed.Terminal()
Basic API Examples
Below are some fundamental API methods provided by Blessed:
-
Getting Terminal Size
print(term.width) print(term.height)
-
Styling Text with Colors
print(term.red('This is red text')) print(term.bold('This is bold text'))
-
Handling Input
with term.cbreak(): val = term.inkey() print(f'You pressed: {val}')
-
Moving the Cursor
print(term.move_xy(10, 10) + 'This text is at position (10,10)')
-
Clearing the Screen
print(term.clear)
Advanced API Examples
-
Formatted Text
formatted_text = term.bright_black_on_white('Stylish Text') print(formatted_text)
-
Scrollable Content
print(term.clear) for y in range(term.height): print(term.move_xy(0, y) + f'Line {y}') term.inkey()
-
Detecting Terminal Size Changes
with term.fullscreen(): print(term.center(term.on_black(term.white('Resizing...')))) term.inkey()
Example Application: Simple To-Do List
Below is an example of a simple terminal-based To-Do list application using Blessed:
import blessed term = blessed.Terminal() to_do_list = [] def display_list(): print(term.clear) print(term.bold('My To-Do List:')) for index, item in enumerate(to_do_list, start=1): print(f'{index}. {item}') print(term.inverse('(Press "a" to add, "q" to quit.)')) def add_task(): print(term.clear + term.move_xy(0, 0)) print('Enter the new task:') task = input() to_do_list.append(task) with term.cbreak(), term.hidden_cursor(): while True: display_list() val = term.inkey() if val == 'a': add_task() elif val == 'q': break
Conclusion
Blessed is a powerful and easy-to-use library for creating terminal applications and TUIs in Python. By following the examples and using the various API methods highlighted, you can design robust and user-friendly text-based interfaces with ease.
Hash: a9a3e38ee26db300babf5cae260726d1896b450b80b567694731ace5bae80077