list_box¶
ListBoxes make use of a ListBoxRenderer. The default ListBoxRenderer simply displays an item’s string representation. To make your own ListBoxRenderer create a class that has a render_item() method that accepts the item to be rendered and returns a widget to render.
Here is an simple example of using the ListBox widget:
class MySys(bgui.System):
def lb_click(self, lb):
print(lb.selected)
def __init__(self):
bgui.System.__init__(self)
items = ["One", "Two", 4, 4.6]
self.frame = bgui.Frame(self, 'window', border=2, size=[0.5, 0.5],
options=bgui.BGUI_DEFAULT|bgui.BGUI_CENTERED)
self.lb = bgui.ListBox(self.frame, "lb", items=items, padding=0.05, size=[0.9, 0.9], pos=[0.05, 0.05])
self.lb.on_click = self.lb_click
# ... rest of __init__
- class bgui.list_box.ListBoxRenderer(listbox)¶
Base class for rendering an item in a ListBox
Parameters: listbox – the listbox the renderer will be used with (used for parenting) - render_item(item)¶
Creates and returns a bgui.label.Label representation of the supplied item
Parameters: item – the item to be rendered Return type: bgui.label.Label
- class bgui.list_box.ListBox(parent, name=None, items=[], padding=0, aspect=None, size=[1, 1], pos=[0, 0], sub_theme='', options=0)¶
Bases: bgui.widget.Widget
Widget for displaying a list of data
Parameters: - parent – the widget’s parent
- name – the name of the widget
- items – the items to fill the list with (can also be changed via ListBox.items)
- padding – the amount of extra spacing to put between items (can also be changed via ListBox.padding)
- aspect – constrain the widget size to a specified aspect ratio
- size – a tuple containing the width and height
- pos – a tuple containing the x and y position
- sub_theme – name of a sub_theme defined in the theme file (similar to CSS classes)
- options – various other options
- theme_section = 'ListBox'¶
- theme_options = {'HighlightColor1': (1, 1, 1, 1), 'HighlightColor2': (0, 0, 1, 1), 'HighlightColor3': (0, 0, 1, 1), 'HighlightColor4': (0, 0, 1, 1), 'Padding': 0, 'Border': 1}¶
- padding = None¶
The amount of extra spacing to put between items
- renderer = None¶
The ListBoxRenderer to use to display items
- items¶
The list of items to display in the ListBox