使 matplotlib 按钮小部件在按下时启动,而不是在释放时启动

Posted

技术标签:

【中文标题】使 matplotlib 按钮小部件在按下时启动,而不是在释放时启动【英文标题】:Make matplotlib button widget actuate when pressed, not when released 【发布时间】:2020-05-27 08:54:38 【问题描述】:

我制作了一个简单的交互式 matplotlib 图,它使用按钮来浏览绘图。一个这样的按钮的最小示例是:

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()

此按钮的行为与预期相同,但在释放鼠标按钮时激活,而不是在按下鼠标按钮时激活。如果我单击按钮并且不释放鼠标按钮,则永远不会调用 message 并且不会打印任何内容以输出。这使得按钮在我这样的情况下使用起来非常不和谐。

如何使这些按钮在按下时启动?或者,我如何构建一个替换按钮?

Windows 10 上的 Python 3.8.1。

【问题讨论】:

【参考方案1】:

你必须通过connect_event()方法使用“button_press_event”事件:

button.connect_event("button_press_event", message)

【讨论】:

以上是关于使 matplotlib 按钮小部件在按下时启动,而不是在释放时启动的主要内容,如果未能解决你的问题,请参考以下文章

输入类型按钮在按下时会改变颜色?

如何使用背景颜色设置圆形按钮并在按下时更改颜色

确定在按下按钮之前最后一个焦点的 QWidget

onActivityResult 从未从小部件启动的活动中调用

为啥我的 UIButton 在按下时有时不会立即做出反应?

使用 Button 小部件在 Tkinter 中正确使用继承