【问题标题】:Is it possible to make a custom mouse cursor with Python Tkinter? (Using matplotlib with the TkAgg backend)是否可以使用 Python Tkinter 制作自定义鼠标光标? (使用带有 TkAgg 后端的 matplotlib)
【发布时间】:2010-12-25 01:02:24
【问题描述】:

这可能只是一个普通的 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 上可用,因此不希望使用特定于平台的解决方案。

【问题讨论】:

  • 对了,Tkinter 内置了 Gumby 和 U.S.S Enterprise 的鼠标图标,但是没有放大镜?很奇怪。
  • 有人可以回答 Windows python 3.2.2

标签: python matplotlib tkinter mouse-cursor


【解决方案1】:

这样的东西适用于 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”的手册页:

Macintosh 版本的 Tk 支持所有 X 光标 和 还将接受任何标准的 Mac 光标 包含 ibeam、十字准线、手表、加号和箭头。此外,Tk 将要 加载 crsr(颜色)类型的 Macintosh 光标资源 和 CURS(黑色和白色)按资源的名称。
这 应用程序及其所有开放动态库的资源 文件 将搜索命名光标。如果有 冲突 颜色光标将始终优先加载 黑色和 白色光标。

【讨论】:

  • @Mark 感谢您的反馈。我想我只是希望有一种更简单的方法来转换我现有的 PNG,而不是将其转换为 X11 位图格式(如果您查看这些文件,它们实际上是带有图像中像素数组的 C 代码) .我会试一试,看看它是否符合我的要求。
  • @Brent,我刚刚使用始终出色的 ImageMagick 的转换实用程序进行了测试。它可以做PNG到XBM的转换。
  • 感谢您的反馈。抱歉,迟来的接受。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-07
  • 2021-10-15
  • 2013-03-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多