这可能只是一个普通的Python Tkinter问题,不一定是matplotlib问题。
因此,我正在使用Matplotlib“TkAgg”后端(使用TkInter将渲染渲染到Tk画布)在matplotlib上开发一套相当大的绘图功能。我正在使用matplotlib开箱即用的一些默认缩放功能...特别是默认matplotlib工具栏上的“缩放到框”按钮。我通过继承现有的“matplotlib.backends.backend_tkagg.NavigationToolbar2TkAgg”类来创建自己的工具栏。
差不多,这里的问题是我讨厌“Zoom to box”使用的默认图标(Tkinter“tcross”)。我已经想出如何使用不同的Tkinter内置游标(例如,这会将光标更改为“plus”而不是“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上运行,因此特定于平台的解决方案是不可取的。
答案 0 :(得分:3)
这样的东西适用于unix X11 XBM文件:
import Tkinter
t = Tkinter.Tk()
t.configure(cursor=('@/usr/include/X11/bitmaps/star', '/usr/include/X11/bitmaps/starMask', 'black', 'white'))
t.mainloop()
关于Mac,请参阅“Tk_GetCursorFromData”的手册页:
Tk的Macintosh版本支持所有X游标 和 也将接受任何标准的Mac游标 包含 ibeam,十字准线,手表,加号和箭头。另外,Tk 将 加载Macintosh光标资源的类型crsr(颜色) 和 CURS(黑色和白色)按资源名称 该 应用程序及其所有开放动态库的资源 档 将搜索指定的光标。如果有 冲突 颜色游标将始终优先加载 黑色和 白色游标。