簡體   English   中英

ttk Notebook 無法在其他框架中的自定義框架中顯示小部件(tkinter 類繼承問題)

[英]ttk Notebook cannot show widgets in a customized frame in other frames(tkinter class inheritance problem)

我創建了幾個框架,我想將它們全部打包到一個主框架中。 因此,我可以將它們作為一個組添加到 ttk.Notebook 中的選項卡中。

但是,當我先將班級的master設置為其他框架,然后將master添加到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 的 master ,它工作正常,所以我覺得我的類出了問題。 但是我說不出來! 誰能告訴我這里出了什么問題?

你忘記把括號放在這里path_frame2.pack() 此外,它應該是tk.Frame.__init__(self, parent, *args, **kwargs) 你忘了把parent放在那里。 希望這有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM