TKinter 从选项卡将 Canvas 提升到父级

问题描述

我有一个带有子笔记本的 TKinter 程序,所有这些都在另一个选项卡中。
目前可以选择 ttk 模块的选项卡之一,将看到左侧的过滤器和右侧的绘图。
这些图目前嵌入在选项卡中,因此每个选项卡都有自己的图,不再需要。

self.my_frame = ttk.Notebook(self)
self.add(self.my_frame,text='My Frame Name')

self.my_frame.first = ttk.Frame(self.my_frame)
self.my_frame.second = ttk.Frame(self.my_frame)
self.my_frame.third = ttk.Frame(self.my_frame)
self.my_frame.add(self.my_frame.first,text='First Name')
self.my_frame.add(self.my_frame.second,text='Second Name')
self.my_frame.add(self.my_frame.third,text='Third Name')

self.my_frame.first.Filters = []
self.add_entry(self.my_frame.first,'Some filter')
self.add_entry(self.my_frame.first,'Some other filter')
self.add_entry(self.my_frame.first,'One more filter')

"Some other stuff"

self.my_frame.first.canvasfig = plt.figure(figsize=(5,5))
self.my_frame.first.canvas_area = ttk.Frame(self.my_frame.first,width=600)

my_frame.second 等在不同的过滤器下看起来完全一样。

代码运行良好。但是,我想将画布提升到父级,因此无论用户切换到哪个选项卡,绘图都将保持可见。 该程序比这大得多,必须使其无法识别,因此如果缺少某些信息,请告诉我,我会添加更多行。

我当前的整体结构看起来像这样,但我只有空标签

self.other_frame= other_frame_class(self)
self.add(self.other_frame,text='Other Frame Name')

self.myframe= ttk.Notebook(self)
self.add(self.myframe,text='My Frame Name')

self.myframe_filters = ttk.Notebook(self.myframe)
self.myframe.RightSep = ttk.Separator(self.myframe,orient=tk.VERTICAL)
self.myframe.RightSep.grid(row=0,column=3,rowspan=103,sticky='NS')
self.myframe_plot = ttk.Frame(self.myframe)

将所有过滤器添加到 myframe_filters Notebook,并将画布和绘图添加到 myframe_plot。 不幸的是,我的选项卡中没有显示任何内容,也没有任何错误消息让我知道问题所在。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)