File containing class that abstracts a collection of widgets.
It can be used to swap between collections of widgets (screens) in a py_cui
Classes
Class |
Doc |
WidgetSet |
Class that represents a collection of widgets. |
class WidgetSet
Class that represents a collection of widgets.
Use PyCUI.apply_widget_set() to set a given widget set for display
Attributes
Attribute |
Type |
Doc |
grid |
py_cui.grid.Grid |
The main layout manager for the CUI |
widgets |
dict of str - py_cui.widgets.Widget |
dict of widget in the grid |
keybindings |
list of py_cui.keybinding.KeyBinding |
list of keybindings to check against in the main CUI loop |
height, width |
int |
height of the terminal in characters, width of terminal in characters |
root |
py_cui.PyCUI |
Main PyCUI object reference |
Methods
Method |
Doc |
set_selected_widget |
Function that sets the selected cell for the CUI |
get_widgets |
Function that gets current set of widgets |
add_key_command |
Function that adds a keybinding to the CUI when in overview mode |
add_scroll_menu |
Function that adds a new scroll menu to the CUI grid |
add_checkbox_menu |
Function that adds a new checkbox menu to the CUI grid |
add_text_box |
Function that adds a new text box to the CUI grid |
add_text_block |
Function that adds a new text block to the CUI grid |
add_label |
Function that adds a new label to the CUI grid |
add_block_label |
Function that adds a new block label to the CUI grid |
add_button |
Function that adds a new button to the CUI grid |
add_slider |
Function that adds a new label to the CUI grid |
init
def __init__(self, num_rows: int, num_cols: int, logger: 'py_cui.debug.PyCUILogger', root:'py_cui.PyCUI', simulated_terminal: Optional[List[int]] =None)
Constructor for WidgetSet
def set_selected_widget(self, widget_id: int) -> None
Function that sets the selected cell for the CUI
Parameters
Parameter |
Type |
Doc |
cell_title |
str |
the title of the cell |
def get_widgets(self) -> Dict[int, Optional['py_cui.widgets.Widget']]
Function that gets current set of widgets
Returns
Return Variable |
Type |
Doc |
widgets |
dict of str -> widget |
dictionary mapping widget IDs to object instances |
add_key_command
def add_key_command(self, key: int, command: Callable[[],Any])
Function that adds a keybinding to the CUI when in overview mode
Parameters
Parameter |
Type |
Doc |
key |
py_cui.keys.KEY_* |
The key bound to the command |
command |
Function |
A no-arg or lambda function to fire on keypress |
def add_scroll_menu(self, title: str, row: int, column: int, row_span: int = 1, column_span: int = 1, padx: int = 1, pady: int = 0) -> 'py_cui.widgets.ScrollMenu'
Function that adds a new scroll menu to the CUI grid
Parameters
Parameter |
Type |
Doc |
title |
str |
The title of the scroll menu |
row |
int |
The row value, from the top down |
column |
int |
The column value from the top down |
row_span=1 |
int |
The number of rows to span accross |
column_span=1 |
int |
the number of columns to span accross |
padx=1 |
int |
number of padding characters in the x direction |
pady=0 |
int |
number of padding characters in the y direction |
Returns
Return Variable |
Type |
Doc |
new_scroll_menu |
ScrollMenu |
A reference to the created scroll menu object. |
def add_checkbox_menu(self, title: str, row: int, column: int, row_span: int=1, column_span: int=1, padx: int=1, pady: int=0, checked_char: str='X') -> 'py_cui.widgets.CheckBoxMenu'
Function that adds a new checkbox menu to the CUI grid
Parameters
Parameter |
Type |
Doc |
title |
str |
The title of the checkbox |
row |
int |
The row value, from the top down |
column |
int |
The column value from the top down |
row_span=1 |
int |
The number of rows to span accross |
column_span=1 |
int |
the number of columns to span accross |
padx=1 |
int |
number of padding characters in the x direction |
pady=0 |
int |
number of padding characters in the y direction |
checked_char='X' |
char |
The character used to mark 'Checked' items |
Returns
Return Variable |
Type |
Doc |
new_checkbox_menu |
CheckBoxMenu |
A reference to the created checkbox object. |
add_text_box
def add_text_box(self, title: str, row: int, column: int, row_span: int = 1, column_span: int = 1, padx: int = 1, pady: int = 0, initial_text: str = '', password: bool = False) -> 'py_cui.widgets.TextBox'
Function that adds a new text box to the CUI grid
Parameters
Parameter |
Type |
Doc |
title |
str |
The title of the textbox |
row |
int |
The row value, from the top down |
column |
int |
The column value from the top down |
row_span=1 |
int |
The number of rows to span accross |
column_span=1 |
int |
the number of columns to span accross |
padx=1 |
int |
number of padding characters in the x direction |
pady=0 |
int |
number of padding characters in the y direction |
initial_text='' |
str |
Initial text for the textbox |
password=False |
bool |
Toggle to show '*' instead of characters. |
Returns
Return Variable |
Type |
Doc |
new_text_box |
TextBox |
A reference to the created textbox object. |
add_text_block
def add_text_block(self, title: str, row: int, column: int, row_span: int = 1, column_span: int = 1, padx: int = 1, pady: int = 0, initial_text: str = '') -> 'py_cui.widgets.ScrollTextBlock'
Function that adds a new text block to the CUI grid
Parameters
Parameter |
Type |
Doc |
title |
str |
The title of the text block |
row |
int |
The row value, from the top down |
column |
int |
The column value from the top down |
row_span=1 |
int |
The number of rows to span accross |
column_span=1 |
int |
the number of columns to span accross |
padx=1 |
int |
number of padding characters in the x direction |
pady=0 |
int |
number of padding characters in the y direction |
initial_text='' |
str |
Initial text for the text block |
Returns
Return Variable |
Type |
Doc |
new_text_block |
ScrollTextBlock |
A reference to the created textblock object. |
add_label
def add_label(self, title: str, row: int, column: int, row_span: int = 1, column_span: int = 1, padx: int = 1, pady: int = 0) -> 'py_cui.widgets.Label'
Function that adds a new label to the CUI grid
Parameters
Parameter |
Type |
Doc |
title |
str |
The title of the label |
row |
int |
The row value, from the top down |
column |
int |
The column value from the top down |
row_span=1 |
int |
The number of rows to span accross |
column_span=1 |
int |
the number of columns to span accross |
padx=1 |
int |
number of padding characters in the x direction |
pady=0 |
int |
number of padding characters in the y direction |
Returns
Return Variable |
Type |
Doc |
new_label |
Label |
A reference to the created label object. |
add_block_label
def add_block_label(self, title: str, row: int, column: int, row_span: int = 1, column_span: int = 1, padx: int = 1, pady: int = 0, center: bool=True) -> 'py_cui.widgets.BlockLabel'
Function that adds a new block label to the CUI grid
Parameters
Parameter |
Type |
Doc |
title |
str |
The title of the block label |
row |
int |
The row value, from the top down |
column |
int |
The column value from the top down |
row_span=1 |
int |
The number of rows to span accross |
column_span=1 |
int |
the number of columns to span accross |
padx=1 |
int |
number of padding characters in the x direction |
pady=0 |
int |
number of padding characters in the y direction |
center |
bool |
flag to tell label to be centered or left-aligned. |
Returns
Return Variable |
Type |
Doc |
new_label |
BlockLabel |
A reference to the created block label object. |
def add_button(self, title: str, row: int, column: int, row_span: int = 1, column_span: int = 1, padx: int = 1, pady: int = 0, command: Optional[Callable[[],Any]]=None) -> 'py_cui.widgets.Button'
Function that adds a new button to the CUI grid
Parameters
Parameter |
Type |
Doc |
title |
str |
The title of the button |
row |
int |
The row value, from the top down |
column |
int |
The column value from the top down |
row_span=1 |
int |
The number of rows to span accross |
column_span=1 |
int |
the number of columns to span accross |
padx=1 |
int |
number of padding characters in the x direction |
pady=0 |
int |
number of padding characters in the y direction |
command=None |
Function |
A no-argument or lambda function to fire on button press. |
Returns
Return Variable |
Type |
Doc |
new_button |
Button |
A reference to the created button object. |
add_slider
def add_slider(self, title: str, row: int, column: int, row_span: int=1
Function that adds a new label to the CUI grid
Parameters
Parameter |
Type |
Doc |
title |
str |
The title of the label |
row |
int |
The row value, from the top down |
column |
int |
The column value from the top down |
row_span=1 |
int |
The number of rows to span accross |
column_span=1 |
int |
the number of columns to span accross |
padx=1 |
int |
number of padding characters in the x direction |
pady=0 |
int |
number of padding characters in the y direction |
Unknown |
min_val = 0 int |
min value of the slider |
Unknown |
max_val = 0 int |
max value of the slider |
Unknown |
step = 0 int |
step to incremento or decrement |
Unknown |
init_val = 0 int |
initial value of the slider |
Returns
Return Variable |
Type |
Doc |
new_slider |
Slider |
A reference to the created slider object. |