[英]How to keep default cursor in matplotlib?
I'm using matplotlib with tkinter:我正在使用 matplotlib 和 tkinter:
from tkinter import *
import matplotlib.pyplot as plt
from matplotlib.figure import Figure
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2Tk
root = Tk()
graph_frame=Frame(root,bg="red",height=10,width=10)
graph_frame.pack(side=TOP)
fig = Figure(figsize=(5, 4), dpi=100)
a=fig.add_subplot(1,1,1)
x = [1,3,12,15,1]
y = [10,9,8,55,19]
a.plot(x,y)
canvas = FigureCanvasTkAgg(fig, master=graph_frame) # A tk.DrawingArea.
canvas.draw()
canvas.get_tk_widget().pack(side=TOP, expand=1)
toolbar = NavigationToolbar2Tk(canvas, graph_frame) # toolbar
toolbar.update()
canvas.get_tk_widget().pack(side=TOP, expand=1)
root.mainloop()
I want the cursor to stay in default mode instead of magnifying glass cursor or moving cross cursor when clicking on zoom or pan respectively我希望 cursor 在分别单击缩放或平移时保持默认模式而不是放大镜 cursor 或移动十字 cursor
How do I achieve this?我如何实现这一目标?
You can override set_cursor
method of your canvas.您可以覆盖
set_cursor
的 set_cursor 方法。
Mouse cursor won't change for any tool.鼠标 cursor 不会因任何工具而改变。
Here is your modified code:这是您修改后的代码:
from tkinter import *
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2Tk
from matplotlib.figure import Figure
def set_cursor_custom(cursor):
"""Ignore any cursor changes"""
pass
root = Tk()
graph_frame = Frame(root, bg="red", height=10, width=10)
graph_frame.pack(side=TOP)
fig = Figure(figsize=(5, 4), dpi=100)
a = fig.add_subplot(1, 1, 1)
x = [1, 3, 12, 15, 1]
y = [10, 9, 8, 55, 19]
a.plot(x, y)
canvas = FigureCanvasTkAgg(fig, master=graph_frame) # A tk.DrawingArea.
# Override set_cursor
canvas.set_cursor = set_cursor_custom
canvas.draw()
canvas.get_tk_widget().pack(side=TOP, expand=1)
toolbar = NavigationToolbar2Tk(canvas, graph_frame) # toolbar
toolbar.update()
canvas.get_tk_widget().pack(side=TOP, expand=1)
root.mainloop()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.