我有一个 matplotlib 图并添加了更多按钮。对于一个按钮,我想向用户显示它在单击后被激活,并在再次单击后被停用。在工具栏的导航组中,当按钮处于活动状态时,按钮全部被按下并且颜色变暗。我会很完美地具有相同的行为,但也可以只更改按钮的颜色等。我只需要用户知道状态。有谁知道如何做到这一点?我已经尝试不从 ToolBase 继承,也从 ToolHome 继承,然后更改描述,但遗憾的是它没有帮助。 我的最小例子是:
import matplotlib
import matplotlib.pyplot as plt
from matplotlib.backend_tools import ToolBase
matplotlib.rcParams["toolbar"] = "toolmanager"
class DrawPointsTool(ToolBase):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.points_enabled = False # Initial state
def trigger(self, sender, event, data=None):
self.points_enabled = not self.points_enabled # Toggle state
if self.points_enabled:
print("Drawing points enabled")
# Here, you can implement your logic to handle point drawing
else:
print("Drawing points disabled")
if __name__ == "__main__":
fig, ax = plt.subplots(2, 1)
ax[0].set_title('Toggle Draw Points')
# Add the custom button to the toolbar
tm = fig.canvas.manager.toolmanager
tm.add_tool('draw_points', DrawPointsTool)
fig.canvas.manager.toolbar.add_tool(tm.get_tool('draw_points'), "toolgroup")
plt.show()
就做
self.color = 'darkgrey'
。