Events
Components communicate upward through events, similar to Vue's Component Events.
Listening to Events
Use @ to listen to events on elements or child components:
Emitting Events
Use self.emit() to fire custom events from a child component:
Parent listens:
Event Arguments
Events can pass any number of arguments:
# Emitting
self.emit("resize", width, height)
# Handling
def handle_resize(self, width, height):
self.state["size"] = (width, height)
Native Widget Events
For PySide6 widgets, event names correspond to Qt signals:
<button @clicked="on_click" />
<lineedit @text_edited="on_text" />
<slider @value_changed="on_value" />
For Pygfx objects, use pygfx event names: