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)

Bases: object

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 = {'Padding': 0, 'HighlightColor4': (0, 0, 1, 1), 'HighlightColor3': (0, 0, 1, 1), 'HighlightColor1': (1, 1, 1, 1), 'Border': 1, 'HighlightColor2': (0, 0, 1, 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