У меня есть следующий код:
import tkinter as tk
from tkinter import ttk
def main():
mainWin = tk.Tk()
notebook_Frame = ttk.Notebook(mainWin)
my_Tab = tk.Frame(notebook_Frame)
В вышеприведенном коде меня волнует то, что я создаю объект notebook_Frame класса ttk.Notebook. Затем я могу передать это в вызов tk.Frame () и получить кадр с именем my_tab.
Итак, теперь я хочу создать пользовательский тип фрейма, который будет передан фрейму или записной книжке. Вот определение класса.
import tkinter as tk
from tkinter.ttk import Notebook
class SetupServers(tk.Frame):
def __init__(self, parentFrame):
self.parentFrame = parentFrame
super().__init__(self.parentFrame)
И наш новый экземпляр main.
def main():
mainWindow = tk.Tk()
myFrame = Frame(mainWindow)
nb_Frame = Notebook(myFrame)
tab = SetupServers(nb_Frame)
mainWindow.mainloop()
Почему main не работает с?
TypeError: descriptor ' init ' требует объект 'super', но получил 'Notebook'
Почему я могу передать классу Frame записную книжку, но когда я делаю подкласс Frame, я не могу передать записную книжку? Что-то не так с моим определением класса? Определение SetupServers init ()? Или вызов super ()?
Любое руководство было бы неплохо. Большинство уроков основаны на c этой концепции и / или к тому моменту, когда они доберутся до того, что я должен искать, я перебираю их, чтобы быстро получить суть материала. Спасибо за любую помощь.