Python - 使用Tkinter中的Matplotlib: 工具栏的平移和缩放不会改变游标

2024-03-29 13:58:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在开发一个tkinter应用程序,里面嵌入了一个matplotlib图形。我现在的问题是:

尽管工具栏的功能正常,但它不会改变光标,这会使用户体验变得更糟,因为你无法判断你是否在缩放。 从我所看到的各种文件和在线教程,这不应该是一个问题。在

从我所读到的,工具栏甚至应该使改变光标更加困难,因为当选择平移或缩放时,它会一直覆盖光标。我正在发布我的代码的相关部分,请让我知道,如果你看到一些不加起来,或任何我可能遗漏的东西。在

任何建议都是值得赞赏的!在

from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, NavigationToolbar2TkAgg

class Controller(tk.Tk): 
    self.canvass = FigureCanvasTkAgg(self.plots, self)
    self.canvass.show()
    self.canvass.get_tk_widget().grid(row=1, column=0, sticky="news") 

    self.toolbar_frame = tk.Frame(self, width=410, height=30)
    self.toolbar_frame.config(relief="sunken", borderwidth=1)
    self.toolbar_frame.pack_propagate(flag=False)
    self.toolbar_frame.grid(column=0, row=3, sticky="w")

    self.toolbar = NavigationToolbar2TkAgg(self.canvass, self.toolbar_frame)
    self.toolbar.pack()
    self.toolbar.update()

结果发现,把工具栏放到一个框架中会导致这种奇怪的行为。我只举了一个简单的“matplotlib in tkinter embedding”示例,它正在工作,并像我在代码中所做的那样修改它以使用一个框架,同样的问题也出现了。

我需要的框架,因为通常工具栏使用包,我不想改变整个布局,因为我一直使用网格。在


Tags: 代码self框架matplotlibtkinterframetkgrid
1条回答
网友
1楼 · 发布于 2024-03-29 13:58:27

我也遇到了同样的问题,奇怪的是,这是由于画布和工具栏没有相同的主控形状。只要做一个新的框架,把画布和工具栏放在里面就可以解决这个问题。您仍然可以在布局中放置带有网格的框架。在

相关问题 更多 >