我创建了几个框架,我想将所有框架打包到一个主框架中。因此,我可以将它们作为一个组,并添加到ttk.Notebook的选项卡中。
但是,当我先将班级的母版设置为其他框架,然后将母版添加到ttk.Notebook中时,该选项卡始终无法显示我的小部件!但是,如果我将相框直接添加到笔记本中,效果很好。
这是我的代码段:
import tkinter as tk
from tkinter import ttk
class PathWindow(tk.Frame):
def __init__(self, parent, *args, **kwargs):
tk.Frame.__init__(self, *args, **kwargs)
self.path_label = ttk.Label(self, text='PathWindow Label').pack()
root = tk.Tk()
nb = ttk.Notebook(root)
nb.pack()
path_frame1 = PathWindow(nb)
nb.add(path_frame1, text='path_frame1')
frame3 = tk.Frame(nb)
path_frame2 = PathWindow(frame3)
path_frame2.pack
btn3 = tk.Button(path_frame2, text='btn in path_frame2')
btn3.pack()
nb.add(frame3, text='frame3, contain path_frame2')
root.mainloop()
看来frame3从不显示内容!
如果我使用默认的tk.Frame类作为其他tk.Frame的母版,效果很好,所以我觉得我的类出了问题。但是我不能说出来!谁能告诉我这里出了什么问题?
您忘了在path_frame2.pack()
中放置括号。另外,它应该是tk.Frame.__init__(self, parent, *args, **kwargs)
。您忘记了将parent
放在此处。希望对您有所帮助!