我需要一个笔记本类,因为我想创建框架示例,然后添加到其中。问题是ttk.notebook需要根窗口,我不知道如何给他顶级根主。
这就是代码:
class Notebook:
def __init__(self,parent):
super().__init__(parent)
self.notebook=ttk.Notebook(parent) #if i give this, the program will add the notebook to the main window
self.notebook.grid(row=1,column=0)
def add_tab(self,title):
frame=ttk.Frame(self.notebook,width=1280, height=280)
frame.pack(fill='both',expand=True)
self.notebook.add(frame,text=title)
tx=tk.Text(frame)
tx.pack()
class MainChat(tk.Toplevel):
def __init__(self, parent):
super().__init__(parent)
self.master=parent
self.title("Test")
self.iconbitmap("icon.ico")
self.resizable(False,False)
self.columnconfigure(0,weight=1)
self.createwidg()
def createwidg(self):
self.titlelb=ttk.Label(self,text="Test",font=("Helvetica",16))
self.nb1=Notebook(self.master)
self.titlelb.grid(row=0,column=0,pady=(10,0))
self.nb1.add_tab('Test')
2条答案
按热度按时间1aaf6o9v1#
主要问题:你需要
没有
.master
第二个问题:你的class Notebook
不是真正的tkinter小部件,因此不需要super().__init__(parent)
但是标准super().__init__()
. 甚至你也可以跳过这一行。最低工作代码:
顺便说一句:
pep 8——python代码的样式指南
即:周围的空间
=
,空格后,
9rbhqvlz2#
这有助于解决您的问题吗?
笔记本是一个很好的工具
Toplevel
类,该类支持无限制地创建子窗口小部件。我定义了一个
Text
在里面Tk
Windows和两个Listbox
里面的小部件Notebook
小部件。它使用类似于您的示例的层次结构。