मैंने कई फ्रेम बनाए हैं, और मैं उन सभी को एक मुख्य फ्रेम में पैक करना चाहता हूं। इस प्रकार, मैं उन्हें एक समूह के रूप में बना सकता हूं और 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()

ऐसा प्रतीत होता है कि फ्रेम 3 कभी भी सामग्री नहीं दिखाता है!

यदि मैं अन्य tk.Frame के मास्टर के रूप में डिफ़ॉल्ट tk.Frame वर्ग का उपयोग करता हूं तो यह ठीक काम करता है, इसलिए मुझे लगता है कि मेरी कक्षा में कुछ गलत हो रहा है। लेकिन मैं यह नहीं बता सकता! क्या कोई मुझे बता सकता है कि यहाँ क्या गलत हो रहा है?

0
cindy50633 1 अप्रैल 2020, 17:46

1 उत्तर

सबसे बढ़िया उत्तर

आप यहाँ path_frame2.pack() कोष्ठक लगाना भूल गए हैं। साथ ही, यह tk.Frame.__init__(self, parent, *args, **kwargs) होना चाहिए। आप वहां parent लगाना भूल गए हैं। आशा है कि यह मददगार है!

1
Богдан Опир 1 अप्रैल 2020, 14:59