ttk笔记本无法在其他框架的自定义框架中显示小部件(tkinter类继承问题)

问题描述 投票:0回答:1

我创建了几个框架,我想将所有框架打包到一个主框架中。因此,我可以将它们作为一个组,并添加到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的母版,效果很好,所以我觉得我的类出了问题。但是我不能说出来!谁能告诉我这里出了什么问题?

python tkinter ttk
1个回答
1
投票

您忘了在path_frame2.pack()中放置括号。另外,它应该是tk.Frame.__init__(self, parent, *args, **kwargs)。您忘记了将parent放在此处。希望对您有所帮助!

© www.soinside.com 2019 - 2024. All rights reserved.