Interactive Events
LightningChart Python Trader supports comprehensive event handling for both drawing tools and chart interactions. This enables building responsive, interactive trading applications where charts can react to user actions in real-time.
Events provide detailed information about user interactions, including cursor positions, clicked elements, and mouse button states. All events use a consistent callback pattern that is easy to integrate into Python applications.
Drawing Tool Events
All drawing tools support pointer events that trigger when users interact with them. These events are available for trend lines, Fibonacci tools, channels, shapes, and all other drawing tools.
Available Drawing Tool Events
Each drawing tool supports the following event methods:
on_pointer_down(callback)- Triggered when clicking on the drawing toolon_pointer_up(callback)- Triggered when releasing the mouse button over the toolon_pointer_enter(callback)- Triggered when the cursor enters the tool's areaon_pointer_leave(callback)- Triggered when the cursor exits the tool's areaon_drawing_tool_moved(callback)- Triggered when the tool is moved or resized
Drawing Tool Event Data
When a drawing tool event is triggered, the callback function receives an event dictionary containing:
{
'x': float, # Chart X coordinate (data point index)
'y': float, # Chart Y coordinate (price level)
'xClient': float, # Screen X position in pixels
'yClient': float, # Screen Y position in pixels
'button': int, # Mouse button: 0=left, 1=middle, 2=right
'isControlPoint': bool, # True if clicked on a draggable endpoint
}
Example: Drawing Tool Events
# Define event handler
def on_down(evt):
print('[Python] pointer DOWN event:', evt)
# Subscribe to the event
trend_line.on_pointer_down(on_down)
# Open the chart
trader.open()
Unsubscribing from Events
To stop listening to an event, use the corresponding off_* method:
# Unsubscribe from pointer down event
trend_line.off_pointer_down()
# Unsubscribe from pointer enter event
trend_line.off_pointer_enter()
Chart-Level Pointer Events
In addition to drawing tool events, the chart itself supports pointer event tracking. These events are useful for building custom tooltips, tracking cursor position, or implementing custom interaction logic.
Available Chart Events
on_pointer_down(callback)- Triggered when clicking anywhere on the charton_pointer_up(callback)- Triggered when releasing the mouse button over the charton_pointer_move(callback)- Triggered when moving the cursor over the chart
Chart Event Data
Chart-level events provide different coordinate information than drawing tool events:
{
'x': float, # Horizontal Axis value (where the pointer event occurred)
'y': float, # Vertical Axis value (where the pointer event occurred)
'pixelsX': float, # Pixels from left edge of chart canvas
'pixelsY': float, # Pixels from top edge of chart canvas
'button': int, # Mouse button: 0=left, 1=middle, 2=right
}
Example: Chart Pointer Events
# Event handlers
def on_down(evt):
print('[Python] pointer DOWN event:', evt)
# Subscribe to events
trader.on_pointer_down(on_down)
# Open the chart
trader.open()
Example: Custom Price Tracker
This example creates a simple price tracker that logs the cursor position:
# Set time range
start_time = datetime(2020, 1, 1)
end_time = datetime(2020, 12, 31)
trader.set_time_range(start_time, end_time)
def track_price(event):
data_index = int(round(event['x']))
price = event['y']
if data_index >= 0:
print(f"Data point #{data_index}: Cursor at ${price:.2f}")
trader.on_pointer_move(track_price)
Unsubscribing from Chart Events
# Stop listening to pointer move events
trader.off_pointer_move()
# Stop listening to pointer down events
trader.off_pointer_down()
# Stop listening to pointer up events
trader.off_pointer_up()