ttk Notebook 无法在其他框架中显示自定义框架中的小部件(tkinter class 继承问题)
ttk Notebook cannot show widgets in a customized frame in other frames(tkinter class inheritance problem)
我创建了几个框架,我想把它们都打包成一个主框架。因此,我可以将它们作为一个组并添加到 ttk.Notebook.
中的选项卡中
但是,当我先将我的 class 的母版设置为其他框架,然后将母版添加到 ttk.Notebook 时,选项卡总是无法显示我的小部件!但是如果我直接把我的相框加到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 class作为其他tk.Frame的主人,它工作正常,所以我觉得我的class出了问题。但是我说不出来!
谁能告诉我这里出了什么问题?
您忘记在此处放置方括号 path_frame2.pack()
。另外,应该是tk.Frame.__init__(self, parent, *args, **kwargs)
。您忘记将 parent
放在那里。希望对您有所帮助!
我创建了几个框架,我想把它们都打包成一个主框架。因此,我可以将它们作为一个组并添加到 ttk.Notebook.
中的选项卡中但是,当我先将我的 class 的母版设置为其他框架,然后将母版添加到 ttk.Notebook 时,选项卡总是无法显示我的小部件!但是如果我直接把我的相框加到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 class作为其他tk.Frame的主人,它工作正常,所以我觉得我的class出了问题。但是我说不出来! 谁能告诉我这里出了什么问题?
您忘记在此处放置方括号 path_frame2.pack()
。另外,应该是tk.Frame.__init__(self, parent, *args, **kwargs)
。您忘记将 parent
放在那里。希望对您有所帮助!