这很可能只是一个一般的 Python Tkinter 问题,不一定是 matplotlib 问题。
因此,我正在使用 Matplotlib“TkAgg”后端(使用 TkInter 将 Agg 渲染到 Tk 画布)在 matplotlib 之上开发一套相当大的绘图功能。我正在使用 matplotlib 开箱即用提供的一些默认缩放功能......特别是默认 matplotlib 工具栏上的“缩放到框”按钮。我通过继承现有的“matplotlib.backends.backend_tkagg.NavigationToolbar2TkAgg”类来创建自己的工具栏。
几乎,这里的问题是我讨厌“缩放到框”使用的默认图标(Tkinter“tcross”)。我已经弄清楚如何使用不同的 Tkinter 内置光标(例如,这会将光标更改为“加号”而不是“tcross”):
import matplotlib
matplotlib.use('TkAgg')
import matplotlib.backend_bases
import matplotlib.backends.backend_tk_agg
matplotlib.backends.backend_tkagg.cursord[matplotlib.backend_bases.cursors.SELECT_REGION] = "plus"
一般来说,我知道要将当前鼠标光标更改为工具栏类中的内置 Tkinter 光标之一,我可以调用:
self.window.configure(cursor="cursor_name")
所以我真正非常喜欢的是能够在用户处于“缩放模式”时使用放大镜图标。我已经有了一个 .ppm 的放大镜图标,我想使用它和所有东西,但我终其一生都无法弄清楚如何将放大镜用作鼠标光标图标。是否可以在 Python Tkinter 中使用自定义图像作为鼠标光标?帮助!
平台说明:这需要在 Mac OS X 10.5+、RedHat Enterprise Linux 5 以及可能的 Solaris 10 上可用,因此不希望使用特定于平台的解决方案。