我的 Tkinter GUI 中嵌入了一个绘图,我试图在绘图中添加一个十字准线,显示鼠标所在的位置

问题描述

在普通绘图中,十字准线工作得很好 see screenshot here

但是当我的情节被嵌入到 GUI 中,又名不是一个单独的窗口时,它不会显示它。我收到的代码警告之一是未访问“光标”Pylance

cursor = Cursor(plot,useblit=True,horizOn=True,vertOn=True,color="green",linewidth=2.0)

我的情节部分代码

        figure = figure(figsize=(5,4),dpi=100)
        plot = figure.add_subplot(1,1,1)
        figure.suptitle(Date,fontsize=12)
        plot.plot(x,y,color=Color)                                

        canvas = figureCanvasTkAgg(figure,root)
        canvas.get_tk_widget().place(x=4,y=200)

        
        toolbar = NavigationToolbar2Tk(canvas,root,pack_toolbar=False)
        toolbar.update()
        toolbar.place(x=4,y=600)

        cursor = Cursor(plot,linewidth=2.0)

解决方法

如果不查看所有内容就很难说,但我的猜测是 Cursor 类未导入,或者您分配了 cursor 变量而从未使用它。>

,

因为 Cursor 继承自 AxesWidget 并且根据 document of AxesWidget

为了保证小部件保持响应性而不是垃圾收集,用户应该维护对对象的引用。

所以如果你的代码在一个函数内,那么你需要保留一个游标的引用。试试:

plot.cursor = Cursor(plot,useblit=True,horizOn=True,vertOn=True,color="green",linewidth=2.0)

它使用 plot 的属性来保存光标的引用。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...