Python 如何在tkinter中为类创建多个选项卡
我正在尝试为tkinter中的每个类创建选项卡。但他们面临着一个问题,那就是他们互相依赖 我已经尝试为Notebook创建一个新类,但结果是一样的。现在我停在这个变体上Python 如何在tkinter中为类创建多个选项卡,python,oop,tkinter,tkinter-layout,Python,Oop,Tkinter,Tkinter Layout,我正在尝试为tkinter中的每个类创建选项卡。但他们面临着一个问题,那就是他们互相依赖 我已经尝试为Notebook创建一个新类,但结果是一样的。现在我停在这个变体上 从tkinter导入* 从tkinter导入ttk 类应用程序(ttk.Frame): 定义初始(自我,主): ttk.Frame.\uuuuu初始化(自,主) self.master=master self.mainframe=ttk.Frame(主控,填充=10 15') self.mainframe.grid(列=0,行=
从tkinter导入*
从tkinter导入ttk
类应用程序(ttk.Frame):
定义初始(自我,主):
ttk.Frame.\uuuuu初始化(自,主)
self.master=master
self.mainframe=ttk.Frame(主控,填充=10 15')
self.mainframe.grid(列=0,行=0,粘性=N+S+W+E)
self.connectionCheck()
self.connectionConf()
self.measurename()
self.meas()
self.logview()
self.running=无
#它还有其他功能。但我认为这并不是真的必要
类Mapframe(ttk.Frame):
定义初始(自我,主):
ttk.Frame.\uuuuu初始化(自,主)
self.master=master
self.mapframe=ttk.Frame(主控,填充=10 15')
self.mapframe.grid(列=0,行=0,粘性=N+W+E+S)
self.choosefiles()
self.meas()
window=Tk()
笔记本=ttk.笔记本(窗口)
tab1=应用程序(笔记本)
tab2=地图框(笔记本)
notebook.add(tab1,text='tab1')
notebook.add(tab2,text='tab2')
notebook.grid(行=0,列=0)
notebook.mainloop()
notebook.quit()
所以,就像我说的,他们彼此躺着。程序启动时,标签甚至不显示
Upd:将
master
更改为self
后,当创建从框架继承的类时,为了保存其他小部件,一条基本规则是所有子小部件都应该是该类的子部件
就你而言,你没有这么做。您正在创建一个笔记本,向笔记本添加框架,但每个框架内的小部件都被设置为根窗口的子窗口。它们必须是帧的子帧(例如:self
)
您需要定义self.mainframe
和self.mapframe
如下示例所示。请注意,将self
而不是master
用作第一个参数:
self.mainframe = ttk.Frame(self, padding='10 10 15 15')
...
self.mapframe = ttk.Frame(self, padding='10 10 15 15')
当调用ttk.Frame.\uuu init\uuuu(self,master)
时,您应该使用master
作为小部件的父级。在其他任何时候,您都不应该将小部件放在master
中,将ttk.Frame(master,
更改为ttk.Frame(self,
我试过了,不起作用。我试过将master
更改为self
。现在我看到了选项卡,但两个框架仍然靠在一起。@D53E:为您的问题添加一个图像,以显示结果。@stovfl我添加了image@D53E:同样的错误:你没有遵循答案中描述的“基本规则”。