wxpython重写统计图的工具栏的提示

发布时间 2023-07-12 17:27:22作者: No九五二七9527
import wx
import matplotlib
from matplotlib.figure import Figure
from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as FigureCanvas
from matplotlib.backends.backend_wxagg import NavigationToolbar2WxAgg as NavigationToolbar

# 设置全局字体配置
matplotlib.rcParams['font.sans-serif'] = ['SimHei']  # 设置中文字体,如宋体、黑体等
matplotlib.rcParams['axes.unicode_minus'] = False  # 解决负号'-'显示为方块的问题

class MyToolbar(NavigationToolbar):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        # 设置按钮的提示语为中文
        self.Realize()
        self.GetToolByPos(0).SetShortHelp('主页')
        self.GetToolByPos(1).SetShortHelp('后退')
        self.GetToolByPos(2).SetShortHelp('前进')
        self.GetToolByPos(4).SetShortHelp('缩放')
        self.GetToolByPos(8).SetShortHelp('保存')

        # 更新工具栏显示
        self.canvas.Refresh()

class MyFrame(wx.Frame):
    def __init__(self, parent, title):
        super().__init__(parent, title=title)

        self.panel = wx.Panel(self)
        self.figure = Figure()
        self.canvas = FigureCanvas(self.panel, -1, self.figure)
        self.toolbar = MyToolbar(self.canvas)

        self.sizer = wx.BoxSizer(wx.VERTICAL)
        self.sizer.Add(self.toolbar, 0, wx.EXPAND)
        self.sizer.Add(self.canvas, 1, wx.EXPAND)
        self.panel.SetSizer(self.sizer)
        self.panel.Fit()

app = wx.App()
frame = MyFrame(None, "统计图")
frame.Show()
app.MainLoop()

  

ps:如果不清楚键位的值,可以打印出来看看先

import matplotlib.pyplot as plt
from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as NavigationToolbar

fig, ax = plt.subplots()

toolbar = NavigationToolbar(fig.canvas, None)

#打印各键位说明的元组
print(toolbar.toolitems)