GUI#
arcade.gui.UIMessageBox#
- class arcade.gui.UIMessageBox(*, width: float, height: float, message_text: str, buttons=('Ok',), callback=None)[source]#
A simple dialog box that pops up a message with buttons to close.
- Parameters
width – Width of the message box
height – Height of the message box
message_text –
buttons – List of strings, which are shown as buttons
callback – Callback function, will receive the text of the clicked button
arcade.gui.UIDraggableMixin#
- class arcade.gui.UIDraggableMixin(x=0, y=0, width=100, height=100, children: Iterable[arcade.gui.widgets.UIWidget] = (), size_hint=None, size_hint_min=None, size_hint_max=None, style=None, **kwargs)[source]#
UIDraggableMixin can be used to make any
UIWidget
draggable.Example, create a draggable Frame, with a background, useful for window like constructs:
- class DraggablePane(UITexturePane, UIDraggableMixin):
…
This does overwrite
UILayout
behaviour which position themselves, likeUIAnchorWidget
arcade.gui.UIMouseFilterMixin#
- class arcade.gui.UIMouseFilterMixin(x: float = 0, y: float = 0, width: float = 100, height: float = 100, children: Iterable[arcade.gui.widgets.UIWidget] = (), size_hint=None, size_hint_min=None, size_hint_max=None, style=None, **kwargs)[source]#
UIMouseFilterMixin
can be used to catch all mouse events which occur inside this widget.Useful for window like widgets,
UIMouseEvents
should not trigger effects which are under the widget.
arcade.gui.UIWindowLikeMixin#
- class arcade.gui.UIWindowLikeMixin(x=0, y=0, width=100, height=100, children: Iterable[arcade.gui.widgets.UIWidget] = (), size_hint=None, size_hint_min=None, size_hint_max=None, style=None, **kwargs)[source]#
Makes a widget window like:
handles all mouse events that occur within the widgets boundaries
can be dragged
arcade.gui.Surface#
- class arcade.gui.Surface(*, size: Tuple[int, int], position: Tuple[int, int] = (0, 0), pixel_ratio: float = 1.0)[source]#
Holds a
arcade.gl.Framebuffer
and abstracts the drawing on it. Used internally for rendering widgets.- activate()[source]#
Save and restore projection and activate Surface buffer to draw on. Also resets the limit of the surface (viewport).
- clear(color: Union[Tuple[int, int, int], List[int], Tuple[int, int, int, int]] = (0, 0, 0, 0))[source]#
Clear the surface
- resize(*, size: Tuple[int, int], pixel_ratio: float) None [source]#
Resize the internal texture by re-allocating a new one
- property size#
Size of the surface in window coordinates
- property size_scaled#
The physical size of the buffer
arcade.gui.UIManager#
- class arcade.gui.UIManager(window: Optional[arcade.application.Window] = None, auto_enable=False)[source]#
V2 UIManager
manager = UIManager() manager.enable() # hook up window events manager.add(Dummy()) def on_draw(): self.clear() ... manager.draw() # draws the UI on screen
- add(widget: arcade.gui.ui_manager.W, *, index=None) arcade.gui.ui_manager.W [source]#
Add a widget to the
UIManager
. Added widgets will receive ui events and be rendered.By default the latest added widget will receive ui events first and will be rendered on top of others.
- Parameters
widget – widget to add
index – position a widget is added, None has the highest priority
- Returns
the widget
- adjust_mouse_coordinates(x, y)[source]#
This method is used, to translate mouse coordinates to coordinates respecting the viewport and projection of cameras. The implementation should work in most common cases.
If you use scrolling in the
arcade.Camera
you have to reset scrolling or overwrite this method using the camera conversion:ui_manager.adjust_mouse_coordinates = camera.mouse_coordinates_to_world
- disable()[source]#
Remove handler functions (on_…) from
arcade.Window
If every
arcade.View
uses its ownarcade.gui.UIManager
, this method should be called inarcade.View.on_hide_view()
.
- enable()[source]#
Registers handler functions (on_…) to
arcade.gui.UIElement
on_draw is not registered, to provide full control about draw order, so it has to be called by the devs themselves.
- get_widgets_at(pos, cls=<class 'arcade.gui.widgets.UIWidget'>) Iterable[arcade.gui.ui_manager.W] [source]#
Yields all widgets containing a position, returns first top laying widgets which is instance of cls.
- Parameters
pos – Pos within the widget bounds
cls – class which the widget should be instance of
- Returns
iterator of widgets of given type at position
- remove(child: arcade.gui.widgets.UIWidget)[source]#
Removes the given widget from UIManager.
- Parameters
child (UIWidget) – widget to remove
- walk_widgets(*, root: Optional[arcade.gui.widgets.UIWidget] = None) Iterable[arcade.gui.widgets.UIWidget] [source]#
walks through widget tree, in reverse draw order (most top drawn widget first)