1

I made a simple interactive matplotlib figure that uses buttons to browse plots. A minimal example of one such button is:

import matplotlib.pyplot as plt
from matplotlib.widgets import Button

def message(_):
    print('Hello, World!')

buttonAxes = plt.axes([0.48, 0.48, 0.08, 0.08])
button = Button(buttonAxes, 'Button', color='#FFFFFF', hovercolor='#808080')
button.on_clicked(message)
plt.show()

This button behaves as intended, but actuates when the mouse button is released, and not when it is pressed. If I click on the button and don't release the mouse button, message is never called and nothing is printed to output. This makes buttons very jarring to use in cases like mine.

How do I make buttons like these actuate when pressed? Alternatively, how do I build a replacement button that does?

Python 3.8.1 on Windows 10.

1 Answer 1

3

You have to use the "button_press_event" event through the connect_event() method:

button.connect_event("button_press_event", message)
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.