Matplotlib 工具栏自定义按钮显示状态

问题描述 投票:0回答:1

我有一个 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()
python matplotlib toolbar
1个回答
0
投票

就做

self.color = 'darkgrey'

© www.soinside.com 2019 - 2024. All rights reserved.