我一直在开发一个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()
事实证明,将工具栏放入框架会导致奇怪的行为。我只是在tkinter嵌入中使用了一个简单的'matplotlib'示例,该示例正在工作并修改它以使用我在代码中执行的框架,并且出现了同样的问题。
我需要框架,因为通常工具栏使用包,我不想因为这个而改变整个布局,因为我一直使用网格。
答案 0 :(得分:1)
我也遇到过同样的问题,奇怪的是这是由画布和工具栏没有相同的主人造成的。只需制作一个新框架并将画布和工具栏放入其中就可以解决问题。您仍然可以在布局中放置带有网格的框架。